"""
@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 google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from streamlit.proto import GapSize_pb2 as _GapSize_pb2
from streamlit.proto import HeightConfig_pb2 as _HeightConfig_pb2
from streamlit.proto import WidthConfig_pb2 as _WidthConfig_pb2
import builtins as _builtins
import sys
import typing as _typing

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

DESCRIPTOR: _descriptor.FileDescriptor

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

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

        BORDER_FIELD_NUMBER: _builtins.int
        border: _builtins.bool
        def __init__(
            self,
            *,
            border: _builtins.bool = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _Never  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["border", b"border"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
        def WhichOneof(self, oneof_group: _Never) -> None: ...

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

        GAP_FIELD_NUMBER: _builtins.int
        gap: _builtins.str
        def __init__(
            self,
            *,
            gap: _builtins.str = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _Never  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["gap", b"gap"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
        def WhichOneof(self, oneof_group: _Never) -> None: ...

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

        class _Direction:
            ValueType = _typing.NewType("ValueType", _builtins.int)
            V: _TypeAlias = ValueType  # noqa: Y015

        class _DirectionEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Block.FlexContainer._Direction.ValueType], _builtins.type):
            DESCRIPTOR: _descriptor.EnumDescriptor
            DIRECTION_UNDEFINED: Block.FlexContainer._Direction.ValueType  # 0
            VERTICAL: Block.FlexContainer._Direction.ValueType  # 1
            HORIZONTAL: Block.FlexContainer._Direction.ValueType  # 2

        class Direction(_Direction, metaclass=_DirectionEnumTypeWrapper): ...
        DIRECTION_UNDEFINED: Block.FlexContainer.Direction.ValueType  # 0
        VERTICAL: Block.FlexContainer.Direction.ValueType  # 1
        HORIZONTAL: Block.FlexContainer.Direction.ValueType  # 2

        class _Justify:
            ValueType = _typing.NewType("ValueType", _builtins.int)
            V: _TypeAlias = ValueType  # noqa: Y015

        class _JustifyEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Block.FlexContainer._Justify.ValueType], _builtins.type):
            DESCRIPTOR: _descriptor.EnumDescriptor
            JUSTIFY_UNDEFINED: Block.FlexContainer._Justify.ValueType  # 0
            JUSTIFY_START: Block.FlexContainer._Justify.ValueType  # 1
            JUSTIFY_END: Block.FlexContainer._Justify.ValueType  # 2
            JUSTIFY_CENTER: Block.FlexContainer._Justify.ValueType  # 3
            SPACE_BETWEEN: Block.FlexContainer._Justify.ValueType  # 4

        class Justify(_Justify, metaclass=_JustifyEnumTypeWrapper): ...
        JUSTIFY_UNDEFINED: Block.FlexContainer.Justify.ValueType  # 0
        JUSTIFY_START: Block.FlexContainer.Justify.ValueType  # 1
        JUSTIFY_END: Block.FlexContainer.Justify.ValueType  # 2
        JUSTIFY_CENTER: Block.FlexContainer.Justify.ValueType  # 3
        SPACE_BETWEEN: Block.FlexContainer.Justify.ValueType  # 4

        class _Align:
            ValueType = _typing.NewType("ValueType", _builtins.int)
            V: _TypeAlias = ValueType  # noqa: Y015

        class _AlignEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Block.FlexContainer._Align.ValueType], _builtins.type):
            DESCRIPTOR: _descriptor.EnumDescriptor
            ALIGN_UNDEFINED: Block.FlexContainer._Align.ValueType  # 0
            ALIGN_START: Block.FlexContainer._Align.ValueType  # 1
            ALIGN_END: Block.FlexContainer._Align.ValueType  # 2
            ALIGN_CENTER: Block.FlexContainer._Align.ValueType  # 3
            STRETCH: Block.FlexContainer._Align.ValueType  # 4

        class Align(_Align, metaclass=_AlignEnumTypeWrapper): ...
        ALIGN_UNDEFINED: Block.FlexContainer.Align.ValueType  # 0
        ALIGN_START: Block.FlexContainer.Align.ValueType  # 1
        ALIGN_END: Block.FlexContainer.Align.ValueType  # 2
        ALIGN_CENTER: Block.FlexContainer.Align.ValueType  # 3
        STRETCH: Block.FlexContainer.Align.ValueType  # 4

        BORDER_FIELD_NUMBER: _builtins.int
        GAP_CONFIG_FIELD_NUMBER: _builtins.int
        SCALE_FIELD_NUMBER: _builtins.int
        DIRECTION_FIELD_NUMBER: _builtins.int
        WRAP_FIELD_NUMBER: _builtins.int
        JUSTIFY_FIELD_NUMBER: _builtins.int
        ALIGN_FIELD_NUMBER: _builtins.int
        border: _builtins.bool
        scale: _builtins.float
        direction: Global___Block.FlexContainer.Direction.ValueType
        wrap: _builtins.bool
        justify: Global___Block.FlexContainer.Justify.ValueType
        align: Global___Block.FlexContainer.Align.ValueType
        @_builtins.property
        def gap_config(self) -> _GapSize_pb2.GapConfig: ...
        def __init__(
            self,
            *,
            border: _builtins.bool = ...,
            gap_config: _GapSize_pb2.GapConfig | None = ...,
            scale: _builtins.float = ...,
            direction: Global___Block.FlexContainer.Direction.ValueType = ...,
            wrap: _builtins.bool = ...,
            justify: Global___Block.FlexContainer.Justify.ValueType = ...,
            align: Global___Block.FlexContainer.Align.ValueType = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["gap_config", b"gap_config"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["align", b"align", "border", b"border", "direction", b"direction", "gap_config", b"gap_config", "justify", b"justify", "scale", b"scale", "wrap", b"wrap"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
        def WhichOneof(self, oneof_group: _Never) -> None: ...

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

        class _VerticalAlignment:
            ValueType = _typing.NewType("ValueType", _builtins.int)
            V: _TypeAlias = ValueType  # noqa: Y015

        class _VerticalAlignmentEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Block.Column._VerticalAlignment.ValueType], _builtins.type):
            DESCRIPTOR: _descriptor.EnumDescriptor
            TOP: Block.Column._VerticalAlignment.ValueType  # 0
            CENTER: Block.Column._VerticalAlignment.ValueType  # 1
            BOTTOM: Block.Column._VerticalAlignment.ValueType  # 2

        class VerticalAlignment(_VerticalAlignment, metaclass=_VerticalAlignmentEnumTypeWrapper): ...
        TOP: Block.Column.VerticalAlignment.ValueType  # 0
        CENTER: Block.Column.VerticalAlignment.ValueType  # 1
        BOTTOM: Block.Column.VerticalAlignment.ValueType  # 2

        WEIGHT_FIELD_NUMBER: _builtins.int
        VERTICAL_ALIGNMENT_FIELD_NUMBER: _builtins.int
        SHOW_BORDER_FIELD_NUMBER: _builtins.int
        GAP_CONFIG_FIELD_NUMBER: _builtins.int
        weight: _builtins.float
        vertical_alignment: Global___Block.Column.VerticalAlignment.ValueType
        show_border: _builtins.bool
        @_builtins.property
        def gap_config(self) -> _GapSize_pb2.GapConfig: ...
        def __init__(
            self,
            *,
            weight: _builtins.float = ...,
            vertical_alignment: Global___Block.Column.VerticalAlignment.ValueType = ...,
            show_border: _builtins.bool = ...,
            gap_config: _GapSize_pb2.GapConfig | None = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["_gap_config", b"_gap_config", "gap_config", b"gap_config"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["_gap_config", b"_gap_config", "gap_config", b"gap_config", "show_border", b"show_border", "vertical_alignment", b"vertical_alignment", "weight", b"weight"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
        _WhichOneofReturnType__gap_config: _TypeAlias = _typing.Literal["gap_config"]  # noqa: Y015
        _WhichOneofArgType__gap_config: _TypeAlias = _typing.Literal["_gap_config", b"_gap_config"]  # noqa: Y015
        def WhichOneof(self, oneof_group: _WhichOneofArgType__gap_config) -> _WhichOneofReturnType__gap_config | None: ...

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

        class _Type:
            ValueType = _typing.NewType("ValueType", _builtins.int)
            V: _TypeAlias = ValueType  # noqa: Y015

        class _TypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Block.Expandable._Type.ValueType], _builtins.type):
            DESCRIPTOR: _descriptor.EnumDescriptor
            DEFAULT: Block.Expandable._Type.ValueType  # 0
            """Default: with border and background"""
            COMPACT: Block.Expandable._Type.ValueType  # 1
            """Minimal inline toggle without border"""
            STEP: Block.Expandable._Type.ValueType  # 2
            """Timeline step with icon column and connector line"""

        class Type(_Type, metaclass=_TypeEnumTypeWrapper): ...
        DEFAULT: Block.Expandable.Type.ValueType  # 0
        """Default: with border and background"""
        COMPACT: Block.Expandable.Type.ValueType  # 1
        """Minimal inline toggle without border"""
        STEP: Block.Expandable.Type.ValueType  # 2
        """Timeline step with icon column and connector line"""

        class _State:
            ValueType = _typing.NewType("ValueType", _builtins.int)
            V: _TypeAlias = ValueType  # noqa: Y015

        class _StateEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Block.Expandable._State.ValueType], _builtins.type):
            DESCRIPTOR: _descriptor.EnumDescriptor
            STATE_UNDEFINED: Block.Expandable._State.ValueType  # 0
            RUNNING: Block.Expandable._State.ValueType  # 1
            COMPLETE: Block.Expandable._State.ValueType  # 2
            ERROR: Block.Expandable._State.ValueType  # 3

        class State(_State, metaclass=_StateEnumTypeWrapper):
            """Progress state of a status container. Left at STATE_UNDEFINED for
            st.expander, which has no notion of progress.
            """

        STATE_UNDEFINED: Block.Expandable.State.ValueType  # 0
        RUNNING: Block.Expandable.State.ValueType  # 1
        COMPLETE: Block.Expandable.State.ValueType  # 2
        ERROR: Block.Expandable.State.ValueType  # 3

        LABEL_FIELD_NUMBER: _builtins.int
        EXPANDED_FIELD_NUMBER: _builtins.int
        ICON_FIELD_NUMBER: _builtins.int
        ID_FIELD_NUMBER: _builtins.int
        TYPE_FIELD_NUMBER: _builtins.int
        STATE_FIELD_NUMBER: _builtins.int
        QUERY_PARAM_KEY_FIELD_NUMBER: _builtins.int
        DEFAULT_EXPANDED_FIELD_NUMBER: _builtins.int
        label: _builtins.str
        expanded: _builtins.bool
        icon: _builtins.str
        id: _builtins.str
        """ID for dynamic expanders. Only set when on_change="rerun" or bind="query-params",
        signaling the frontend to treat this as a stateful widget.
        """
        type: Global___Block.Expandable.Type.ValueType
        """Visual style of the expandable container."""
        state: Global___Block.Expandable.State.ValueType
        """Progress state, only set by st.status. The frontend uses it to pick the
        step icon and to announce the state to screen readers.
        """
        query_param_key: _builtins.str
        """Query parameter name the expander's open state syncs with. Only set when
        bind="query-params".
        """
        default_expanded: _builtins.bool
        """Original `expanded=` default. The frontend omits the query param when the
        expander matches this value. Distinct from `expanded`, which is current state.
        """
        def __init__(
            self,
            *,
            label: _builtins.str = ...,
            expanded: _builtins.bool | None = ...,
            icon: _builtins.str = ...,
            id: _builtins.str | None = ...,
            type: Global___Block.Expandable.Type.ValueType = ...,
            state: Global___Block.Expandable.State.ValueType = ...,
            query_param_key: _builtins.str | None = ...,
            default_expanded: _builtins.bool | None = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["_default_expanded", b"_default_expanded", "_expanded", b"_expanded", "_id", b"_id", "_query_param_key", b"_query_param_key", "default_expanded", b"default_expanded", "expanded", b"expanded", "id", b"id", "query_param_key", b"query_param_key"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["_default_expanded", b"_default_expanded", "_expanded", b"_expanded", "_id", b"_id", "_query_param_key", b"_query_param_key", "default_expanded", b"default_expanded", "expanded", b"expanded", "icon", b"icon", "id", b"id", "label", b"label", "query_param_key", b"query_param_key", "state", b"state", "type", b"type"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
        _WhichOneofReturnType__default_expanded: _TypeAlias = _typing.Literal["default_expanded"]  # noqa: Y015
        _WhichOneofArgType__default_expanded: _TypeAlias = _typing.Literal["_default_expanded", b"_default_expanded"]  # noqa: Y015
        _WhichOneofReturnType__expanded: _TypeAlias = _typing.Literal["expanded"]  # noqa: Y015
        _WhichOneofArgType__expanded: _TypeAlias = _typing.Literal["_expanded", b"_expanded"]  # noqa: Y015
        _WhichOneofReturnType__id: _TypeAlias = _typing.Literal["id"]  # noqa: Y015
        _WhichOneofArgType__id: _TypeAlias = _typing.Literal["_id", b"_id"]  # noqa: Y015
        _WhichOneofReturnType__query_param_key: _TypeAlias = _typing.Literal["query_param_key"]  # noqa: Y015
        _WhichOneofArgType__query_param_key: _TypeAlias = _typing.Literal["_query_param_key", b"_query_param_key"]  # noqa: Y015
        @_typing.overload
        def WhichOneof(self, oneof_group: _WhichOneofArgType__default_expanded) -> _WhichOneofReturnType__default_expanded | None: ...
        @_typing.overload
        def WhichOneof(self, oneof_group: _WhichOneofArgType__expanded) -> _WhichOneofReturnType__expanded | None: ...
        @_typing.overload
        def WhichOneof(self, oneof_group: _WhichOneofArgType__id) -> _WhichOneofReturnType__id | None: ...
        @_typing.overload
        def WhichOneof(self, oneof_group: _WhichOneofArgType__query_param_key) -> _WhichOneofReturnType__query_param_key | None: ...

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

        class _DialogWidth:
            ValueType = _typing.NewType("ValueType", _builtins.int)
            V: _TypeAlias = ValueType  # noqa: Y015

        class _DialogWidthEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Block.Dialog._DialogWidth.ValueType], _builtins.type):
            DESCRIPTOR: _descriptor.EnumDescriptor
            SMALL: Block.Dialog._DialogWidth.ValueType  # 0
            LARGE: Block.Dialog._DialogWidth.ValueType  # 1
            MEDIUM: Block.Dialog._DialogWidth.ValueType  # 2

        class DialogWidth(_DialogWidth, metaclass=_DialogWidthEnumTypeWrapper): ...
        SMALL: Block.Dialog.DialogWidth.ValueType  # 0
        LARGE: Block.Dialog.DialogWidth.ValueType  # 1
        MEDIUM: Block.Dialog.DialogWidth.ValueType  # 2

        class _DialogPosition:
            ValueType = _typing.NewType("ValueType", _builtins.int)
            V: _TypeAlias = ValueType  # noqa: Y015

        class _DialogPositionEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Block.Dialog._DialogPosition.ValueType], _builtins.type):
            DESCRIPTOR: _descriptor.EnumDescriptor
            CENTER: Block.Dialog._DialogPosition.ValueType  # 0
            LEFT: Block.Dialog._DialogPosition.ValueType  # 1
            RIGHT: Block.Dialog._DialogPosition.ValueType  # 2

        class DialogPosition(_DialogPosition, metaclass=_DialogPositionEnumTypeWrapper): ...
        CENTER: Block.Dialog.DialogPosition.ValueType  # 0
        LEFT: Block.Dialog.DialogPosition.ValueType  # 1
        RIGHT: Block.Dialog.DialogPosition.ValueType  # 2

        TITLE_FIELD_NUMBER: _builtins.int
        DISMISSIBLE_FIELD_NUMBER: _builtins.int
        WIDTH_FIELD_NUMBER: _builtins.int
        IS_OPEN_FIELD_NUMBER: _builtins.int
        ID_FIELD_NUMBER: _builtins.int
        ICON_FIELD_NUMBER: _builtins.int
        POSITION_FIELD_NUMBER: _builtins.int
        title: _builtins.str
        dismissible: _builtins.bool
        width: Global___Block.Dialog.DialogWidth.ValueType
        is_open: _builtins.bool
        id: _builtins.str
        """If id is set, dismissal of the dialog will trigger a rerun."""
        icon: _builtins.str
        """Optional icon shown next to the dialog title."""
        position: Global___Block.Dialog.DialogPosition.ValueType
        """Placement of the dialog. LEFT/RIGHT render it as a full-height side drawer."""
        def __init__(
            self,
            *,
            title: _builtins.str = ...,
            dismissible: _builtins.bool = ...,
            width: Global___Block.Dialog.DialogWidth.ValueType = ...,
            is_open: _builtins.bool | None = ...,
            id: _builtins.str = ...,
            icon: _builtins.str = ...,
            position: Global___Block.Dialog.DialogPosition.ValueType = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["_is_open", b"_is_open", "is_open", b"is_open"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["_is_open", b"_is_open", "dismissible", b"dismissible", "icon", b"icon", "id", b"id", "is_open", b"is_open", "position", b"position", "title", b"title", "width", b"width"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
        _WhichOneofReturnType__is_open: _TypeAlias = _typing.Literal["is_open"]  # noqa: Y015
        _WhichOneofArgType__is_open: _TypeAlias = _typing.Literal["_is_open", b"_is_open"]  # noqa: Y015
        def WhichOneof(self, oneof_group: _WhichOneofArgType__is_open) -> _WhichOneofReturnType__is_open | None: ...

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

        FORM_ID_FIELD_NUMBER: _builtins.int
        CLEAR_ON_SUBMIT_FIELD_NUMBER: _builtins.int
        BORDER_FIELD_NUMBER: _builtins.int
        ENTER_TO_SUBMIT_FIELD_NUMBER: _builtins.int
        form_id: _builtins.str
        clear_on_submit: _builtins.bool
        border: _builtins.bool
        enter_to_submit: _builtins.bool
        def __init__(
            self,
            *,
            form_id: _builtins.str = ...,
            clear_on_submit: _builtins.bool = ...,
            border: _builtins.bool = ...,
            enter_to_submit: _builtins.bool = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _Never  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["border", b"border", "clear_on_submit", b"clear_on_submit", "enter_to_submit", b"enter_to_submit", "form_id", b"form_id"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
        def WhichOneof(self, oneof_group: _Never) -> None: ...

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

        DEFAULT_TAB_INDEX_FIELD_NUMBER: _builtins.int
        ID_FIELD_NUMBER: _builtins.int
        QUERY_PARAM_KEY_FIELD_NUMBER: _builtins.int
        DEFAULT_TAB_LABEL_FIELD_NUMBER: _builtins.int
        default_tab_index: _builtins.int
        id: _builtins.str
        """Widget ID for dynamic tabs. Only set when on_change="rerun" or
        bind="query-params", signaling the frontend to treat this as a
        stateful widget. When absent, tabs may still have a block-level id
        for CSS key styling but should not trigger reruns on tab change.
        """
        query_param_key: _builtins.str
        """Query parameter name the active tab syncs with. Only set when
        bind="query-params".
        """
        default_tab_label: _builtins.str
        """Original default tab label (from `default=` or the first tab). Omitted
        from the URL when the active tab matches.
        """
        def __init__(
            self,
            *,
            default_tab_index: _builtins.int = ...,
            id: _builtins.str | None = ...,
            query_param_key: _builtins.str | None = ...,
            default_tab_label: _builtins.str | None = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["_default_tab_label", b"_default_tab_label", "_id", b"_id", "_query_param_key", b"_query_param_key", "default_tab_label", b"default_tab_label", "id", b"id", "query_param_key", b"query_param_key"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["_default_tab_label", b"_default_tab_label", "_id", b"_id", "_query_param_key", b"_query_param_key", "default_tab_index", b"default_tab_index", "default_tab_label", b"default_tab_label", "id", b"id", "query_param_key", b"query_param_key"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
        _WhichOneofReturnType__default_tab_label: _TypeAlias = _typing.Literal["default_tab_label"]  # noqa: Y015
        _WhichOneofArgType__default_tab_label: _TypeAlias = _typing.Literal["_default_tab_label", b"_default_tab_label"]  # noqa: Y015
        _WhichOneofReturnType__id: _TypeAlias = _typing.Literal["id"]  # noqa: Y015
        _WhichOneofArgType__id: _TypeAlias = _typing.Literal["_id", b"_id"]  # noqa: Y015
        _WhichOneofReturnType__query_param_key: _TypeAlias = _typing.Literal["query_param_key"]  # noqa: Y015
        _WhichOneofArgType__query_param_key: _TypeAlias = _typing.Literal["_query_param_key", b"_query_param_key"]  # noqa: Y015
        @_typing.overload
        def WhichOneof(self, oneof_group: _WhichOneofArgType__default_tab_label) -> _WhichOneofReturnType__default_tab_label | None: ...
        @_typing.overload
        def WhichOneof(self, oneof_group: _WhichOneofArgType__id) -> _WhichOneofReturnType__id | None: ...
        @_typing.overload
        def WhichOneof(self, oneof_group: _WhichOneofArgType__query_param_key) -> _WhichOneofReturnType__query_param_key | None: ...

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

        LABEL_FIELD_NUMBER: _builtins.int
        label: _builtins.str
        def __init__(
            self,
            *,
            label: _builtins.str = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _Never  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["label", b"label"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
        def WhichOneof(self, oneof_group: _Never) -> None: ...

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

        LABEL_FIELD_NUMBER: _builtins.int
        HELP_FIELD_NUMBER: _builtins.int
        DISABLED_FIELD_NUMBER: _builtins.int
        ICON_FIELD_NUMBER: _builtins.int
        TYPE_FIELD_NUMBER: _builtins.int
        OPEN_FIELD_NUMBER: _builtins.int
        ID_FIELD_NUMBER: _builtins.int
        WRAP_FIELD_NUMBER: _builtins.int
        label: _builtins.str
        help: _builtins.str
        disabled: _builtins.bool
        icon: _builtins.str
        type: _builtins.str
        open: _builtins.bool
        """Initial open state (used with on_change)."""
        id: _builtins.str
        """Widget ID for dynamic popovers. Only set when on_change="rerun",
        signaling the frontend to treat this as a stateful widget.
        When absent, the popover may still have a block-level id for CSS
        key styling but should not trigger reruns on toggle.
        """
        wrap: _builtins.bool
        """If false, the trigger label ellipsizes on one line instead of wrapping.
        Absent means the frontend decides the optimal wrapping behavior based on the layout.
        """
        def __init__(
            self,
            *,
            label: _builtins.str = ...,
            help: _builtins.str = ...,
            disabled: _builtins.bool = ...,
            icon: _builtins.str = ...,
            type: _builtins.str = ...,
            open: _builtins.bool | None = ...,
            id: _builtins.str | None = ...,
            wrap: _builtins.bool | None = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _typing.Literal["_id", b"_id", "_open", b"_open", "_wrap", b"_wrap", "id", b"id", "open", b"open", "wrap", b"wrap"]  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["_id", b"_id", "_open", b"_open", "_wrap", b"_wrap", "disabled", b"disabled", "help", b"help", "icon", b"icon", "id", b"id", "label", b"label", "open", b"open", "type", b"type", "wrap", b"wrap"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
        _WhichOneofReturnType__id: _TypeAlias = _typing.Literal["id"]  # noqa: Y015
        _WhichOneofArgType__id: _TypeAlias = _typing.Literal["_id", b"_id"]  # noqa: Y015
        _WhichOneofReturnType__open: _TypeAlias = _typing.Literal["open"]  # noqa: Y015
        _WhichOneofArgType__open: _TypeAlias = _typing.Literal["_open", b"_open"]  # noqa: Y015
        _WhichOneofReturnType__wrap: _TypeAlias = _typing.Literal["wrap"]  # noqa: Y015
        _WhichOneofArgType__wrap: _TypeAlias = _typing.Literal["_wrap", b"_wrap"]  # noqa: Y015
        @_typing.overload
        def WhichOneof(self, oneof_group: _WhichOneofArgType__id) -> _WhichOneofReturnType__id | None: ...
        @_typing.overload
        def WhichOneof(self, oneof_group: _WhichOneofArgType__open) -> _WhichOneofReturnType__open | None: ...
        @_typing.overload
        def WhichOneof(self, oneof_group: _WhichOneofArgType__wrap) -> _WhichOneofReturnType__wrap | None: ...

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

        class _AvatarType:
            ValueType = _typing.NewType("ValueType", _builtins.int)
            V: _TypeAlias = ValueType  # noqa: Y015

        class _AvatarTypeEnumTypeWrapper(_enum_type_wrapper._EnumTypeWrapper[Block.ChatMessage._AvatarType.ValueType], _builtins.type):
            DESCRIPTOR: _descriptor.EnumDescriptor
            IMAGE: Block.ChatMessage._AvatarType.ValueType  # 0
            EMOJI: Block.ChatMessage._AvatarType.ValueType  # 1
            ICON: Block.ChatMessage._AvatarType.ValueType  # 2

        class AvatarType(_AvatarType, metaclass=_AvatarTypeEnumTypeWrapper): ...
        IMAGE: Block.ChatMessage.AvatarType.ValueType  # 0
        EMOJI: Block.ChatMessage.AvatarType.ValueType  # 1
        ICON: Block.ChatMessage.AvatarType.ValueType  # 2

        NAME_FIELD_NUMBER: _builtins.int
        AVATAR_FIELD_NUMBER: _builtins.int
        AVATAR_TYPE_FIELD_NUMBER: _builtins.int
        name: _builtins.str
        avatar: _builtins.str
        avatar_type: Global___Block.ChatMessage.AvatarType.ValueType
        def __init__(
            self,
            *,
            name: _builtins.str = ...,
            avatar: _builtins.str = ...,
            avatar_type: Global___Block.ChatMessage.AvatarType.ValueType = ...,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _Never  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _typing.Literal["avatar", b"avatar", "avatar_type", b"avatar_type", "name", b"name"]  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
        def WhichOneof(self, oneof_group: _Never) -> None: ...

    @_typing.final
    class Transparent(_message.Message):
        """A layout-transparent wrapper block. Produces no DOM node — children
        render directly in the parent container's flex context.
        """

        DESCRIPTOR: _descriptor.Descriptor

        def __init__(
            self,
        ) -> None: ...
        _HasFieldArgType: _TypeAlias = _Never  # noqa: Y015
        def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
        _ClearFieldArgType: _TypeAlias = _Never  # noqa: Y015
        def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
        def WhichOneof(self, oneof_group: _Never) -> None: ...

    VERTICAL_FIELD_NUMBER: _builtins.int
    HORIZONTAL_FIELD_NUMBER: _builtins.int
    COLUMN_FIELD_NUMBER: _builtins.int
    EXPANDABLE_FIELD_NUMBER: _builtins.int
    FORM_FIELD_NUMBER: _builtins.int
    TAB_CONTAINER_FIELD_NUMBER: _builtins.int
    TAB_FIELD_NUMBER: _builtins.int
    CHAT_MESSAGE_FIELD_NUMBER: _builtins.int
    POPOVER_FIELD_NUMBER: _builtins.int
    DIALOG_FIELD_NUMBER: _builtins.int
    FLEX_CONTAINER_FIELD_NUMBER: _builtins.int
    TRANSPARENT_FIELD_NUMBER: _builtins.int
    ALLOW_EMPTY_FIELD_NUMBER: _builtins.int
    ID_FIELD_NUMBER: _builtins.int
    HEIGHT_CONFIG_FIELD_NUMBER: _builtins.int
    WIDTH_CONFIG_FIELD_NUMBER: _builtins.int
    AUTOSCROLL_FIELD_NUMBER: _builtins.int
    allow_empty: _builtins.bool
    id: _builtins.str
    autoscroll: _builtins.bool
    @_builtins.property
    def vertical(self) -> Global___Block.Vertical: ...
    @_builtins.property
    def horizontal(self) -> Global___Block.Horizontal: ...
    @_builtins.property
    def column(self) -> Global___Block.Column: ...
    @_builtins.property
    def expandable(self) -> Global___Block.Expandable: ...
    @_builtins.property
    def form(self) -> Global___Block.Form: ...
    @_builtins.property
    def tab_container(self) -> Global___Block.TabContainer: ...
    @_builtins.property
    def tab(self) -> Global___Block.Tab: ...
    @_builtins.property
    def chat_message(self) -> Global___Block.ChatMessage: ...
    @_builtins.property
    def popover(self) -> Global___Block.Popover: ...
    @_builtins.property
    def dialog(self) -> Global___Block.Dialog: ...
    @_builtins.property
    def flex_container(self) -> Global___Block.FlexContainer: ...
    @_builtins.property
    def transparent(self) -> Global___Block.Transparent: ...
    @_builtins.property
    def height_config(self) -> _HeightConfig_pb2.HeightConfig: ...
    @_builtins.property
    def width_config(self) -> _WidthConfig_pb2.WidthConfig: ...
    def __init__(
        self,
        *,
        vertical: Global___Block.Vertical | None = ...,
        horizontal: Global___Block.Horizontal | None = ...,
        column: Global___Block.Column | None = ...,
        expandable: Global___Block.Expandable | None = ...,
        form: Global___Block.Form | None = ...,
        tab_container: Global___Block.TabContainer | None = ...,
        tab: Global___Block.Tab | None = ...,
        chat_message: Global___Block.ChatMessage | None = ...,
        popover: Global___Block.Popover | None = ...,
        dialog: Global___Block.Dialog | None = ...,
        flex_container: Global___Block.FlexContainer | None = ...,
        transparent: Global___Block.Transparent | None = ...,
        allow_empty: _builtins.bool = ...,
        id: _builtins.str | None = ...,
        height_config: _HeightConfig_pb2.HeightConfig | None = ...,
        width_config: _WidthConfig_pb2.WidthConfig | None = ...,
        autoscroll: _builtins.bool | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["_autoscroll", b"_autoscroll", "_height_config", b"_height_config", "_id", b"_id", "_width_config", b"_width_config", "autoscroll", b"autoscroll", "chat_message", b"chat_message", "column", b"column", "dialog", b"dialog", "expandable", b"expandable", "flex_container", b"flex_container", "form", b"form", "height_config", b"height_config", "horizontal", b"horizontal", "id", b"id", "popover", b"popover", "tab", b"tab", "tab_container", b"tab_container", "transparent", b"transparent", "type", b"type", "vertical", b"vertical", "width_config", b"width_config"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["_autoscroll", b"_autoscroll", "_height_config", b"_height_config", "_id", b"_id", "_width_config", b"_width_config", "allow_empty", b"allow_empty", "autoscroll", b"autoscroll", "chat_message", b"chat_message", "column", b"column", "dialog", b"dialog", "expandable", b"expandable", "flex_container", b"flex_container", "form", b"form", "height_config", b"height_config", "horizontal", b"horizontal", "id", b"id", "popover", b"popover", "tab", b"tab", "tab_container", b"tab_container", "transparent", b"transparent", "type", b"type", "vertical", b"vertical", "width_config", b"width_config"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
    _WhichOneofReturnType__autoscroll: _TypeAlias = _typing.Literal["autoscroll"]  # noqa: Y015
    _WhichOneofArgType__autoscroll: _TypeAlias = _typing.Literal["_autoscroll", b"_autoscroll"]  # noqa: Y015
    _WhichOneofReturnType__height_config: _TypeAlias = _typing.Literal["height_config"]  # noqa: Y015
    _WhichOneofArgType__height_config: _TypeAlias = _typing.Literal["_height_config", b"_height_config"]  # noqa: Y015
    _WhichOneofReturnType__id: _TypeAlias = _typing.Literal["id"]  # noqa: Y015
    _WhichOneofArgType__id: _TypeAlias = _typing.Literal["_id", b"_id"]  # noqa: Y015
    _WhichOneofReturnType__width_config: _TypeAlias = _typing.Literal["width_config"]  # noqa: Y015
    _WhichOneofArgType__width_config: _TypeAlias = _typing.Literal["_width_config", b"_width_config"]  # noqa: Y015
    _WhichOneofReturnType_type: _TypeAlias = _typing.Literal["vertical", "horizontal", "column", "expandable", "form", "tab_container", "tab", "chat_message", "popover", "dialog", "flex_container", "transparent"]  # noqa: Y015
    _WhichOneofArgType_type: _TypeAlias = _typing.Literal["type", b"type"]  # noqa: Y015
    @_typing.overload
    def WhichOneof(self, oneof_group: _WhichOneofArgType__autoscroll) -> _WhichOneofReturnType__autoscroll | None: ...
    @_typing.overload
    def WhichOneof(self, oneof_group: _WhichOneofArgType__height_config) -> _WhichOneofReturnType__height_config | None: ...
    @_typing.overload
    def WhichOneof(self, oneof_group: _WhichOneofArgType__id) -> _WhichOneofReturnType__id | None: ...
    @_typing.overload
    def WhichOneof(self, oneof_group: _WhichOneofArgType__width_config) -> _WhichOneofReturnType__width_config | None: ...
    @_typing.overload
    def WhichOneof(self, oneof_group: _WhichOneofArgType_type) -> _WhichOneofReturnType_type | None: ...

Global___Block: _TypeAlias = Block  # noqa: Y015
