"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
*!
Copyright (c) Streamlit Inc. (2018-2022) Snowflake Inc. (2022-2026)

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""

from collections import abc as _abc
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf.internal import containers as _containers
import builtins as _builtins
import sys
import typing as _typing

if sys.version_info >= (3, 10):
    from typing import TypeAlias as _TypeAlias
else:
    from typing_extensions import TypeAlias as _TypeAlias

DESCRIPTOR: _descriptor.FileDescriptor

@_typing.final
class PageProfile(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    COMMANDS_FIELD_NUMBER: _builtins.int
    EXEC_TIME_FIELD_NUMBER: _builtins.int
    PREP_TIME_FIELD_NUMBER: _builtins.int
    CONFIG_FIELD_NUMBER: _builtins.int
    UNCAUGHT_EXCEPTION_FIELD_NUMBER: _builtins.int
    ATTRIBUTIONS_FIELD_NUMBER: _builtins.int
    OS_FIELD_NUMBER: _builtins.int
    TIMEZONE_FIELD_NUMBER: _builtins.int
    HEADLESS_FIELD_NUMBER: _builtins.int
    IS_FRAGMENT_RUN_FIELD_NUMBER: _builtins.int
    SERVER_MODE_FIELD_NUMBER: _builtins.int
    exec_time: _builtins.int
    prep_time: _builtins.int
    uncaught_exception: _builtins.str
    os: _builtins.str
    timezone: _builtins.str
    headless: _builtins.bool
    is_fragment_run: _builtins.bool
    server_mode: _builtins.str
    """The server mode used to run the Streamlit app:
    - "tornado": Traditional Tornado server (streamlit run)
    - "starlette-managed": Starlette server via server.useStarlette config
    - "starlette-app": st.App started via streamlit run
    - "asgi-server": st.App run directly with external ASGI server (uvicorn, gunicorn)
    - "asgi-mounted": st.App mounted on another ASGI framework (FastAPI, Starlette)
    """
    @_builtins.property
    def commands(self) -> _containers.RepeatedCompositeFieldContainer[Global___Command]: ...
    @_builtins.property
    def config(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
    @_builtins.property
    def attributions(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
    def __init__(
        self,
        *,
        commands: _abc.Iterable[Global___Command] | None = ...,
        exec_time: _builtins.int = ...,
        prep_time: _builtins.int = ...,
        config: _abc.Iterable[_builtins.str] | None = ...,
        uncaught_exception: _builtins.str = ...,
        attributions: _abc.Iterable[_builtins.str] | None = ...,
        os: _builtins.str = ...,
        timezone: _builtins.str = ...,
        headless: _builtins.bool = ...,
        is_fragment_run: _builtins.bool = ...,
        server_mode: _builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["attributions", b"attributions", "commands", b"commands", "config", b"config", "exec_time", b"exec_time", "headless", b"headless", "is_fragment_run", b"is_fragment_run", "os", b"os", "prep_time", b"prep_time", "server_mode", b"server_mode", "timezone", b"timezone", "uncaught_exception", b"uncaught_exception"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___PageProfile: _TypeAlias = PageProfile  # noqa: Y015

@_typing.final
class Argument(_message.Message):
    """The field names are used as part of the event json sent
    to our metrics provider. we are using short names to
    optimize for the size.
    """

    DESCRIPTOR: _descriptor.Descriptor

    K_FIELD_NUMBER: _builtins.int
    T_FIELD_NUMBER: _builtins.int
    M_FIELD_NUMBER: _builtins.int
    P_FIELD_NUMBER: _builtins.int
    k: _builtins.str
    """The keyword of the argument:"""
    t: _builtins.str
    """The type of the argument:"""
    m: _builtins.str
    """Some metadata about the argument value:"""
    p: _builtins.int
    """Contains the position (if positional argument):"""
    def __init__(
        self,
        *,
        k: _builtins.str = ...,
        t: _builtins.str = ...,
        m: _builtins.str = ...,
        p: _builtins.int = ...,
    ) -> None: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["k", b"k", "m", b"m", "p", b"p", "t", b"t"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___Argument: _TypeAlias = Argument  # noqa: Y015

@_typing.final
class Command(_message.Message):
    DESCRIPTOR: _descriptor.Descriptor

    NAME_FIELD_NUMBER: _builtins.int
    ARGS_FIELD_NUMBER: _builtins.int
    TIME_FIELD_NUMBER: _builtins.int
    name: _builtins.str
    time: _builtins.int
    @_builtins.property
    def args(self) -> _containers.RepeatedCompositeFieldContainer[Global___Argument]: ...
    def __init__(
        self,
        *,
        name: _builtins.str = ...,
        args: _abc.Iterable[Global___Argument] | None = ...,
        time: _builtins.int = ...,
    ) -> None: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["args", b"args", "name", b"name", "time", b"time"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___Command: _TypeAlias = Command  # noqa: Y015
