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

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.
"""

import builtins
import google.protobuf.descriptor
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
import streamlit.proto.GapSize_pb2
import streamlit.proto.HeightConfig_pb2
import streamlit.proto.WidthConfig_pb2
import sys
import typing

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class Block(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class Vertical(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        BORDER_FIELD_NUMBER: builtins.int
        HEIGHT_FIELD_NUMBER: builtins.int
        border: builtins.bool
        height: builtins.int
        """DEPRECATED: We use height_config on the top-level which is shared.
        with other Block types.
        """
        def __init__(
            self,
            *,
            border: builtins.bool = ...,
            height: builtins.int = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["border", b"border", "height", b"height"]) -> None: ...

    @typing.final
    class Horizontal(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        GAP_FIELD_NUMBER: builtins.int
        gap: builtins.str
        def __init__(
            self,
            *,
            gap: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["gap", b"gap"]) -> None: ...

    @typing.final
    class FlexContainer(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        class _Direction:
            ValueType = typing.NewType("ValueType", builtins.int)
            V: typing_extensions.TypeAlias = ValueType

        class _DirectionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Block.FlexContainer._Direction.ValueType], builtins.type):
            DESCRIPTOR: google.protobuf.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: typing_extensions.TypeAlias = ValueType

        class _JustifyEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Block.FlexContainer._Justify.ValueType], builtins.type):
            DESCRIPTOR: google.protobuf.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: typing_extensions.TypeAlias = ValueType

        class _AlignEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Block.FlexContainer._Align.ValueType], builtins.type):
            DESCRIPTOR: google.protobuf.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
        @property
        def gap_config(self) -> streamlit.proto.GapSize_pb2.GapConfig: ...
        def __init__(
            self,
            *,
            border: builtins.bool = ...,
            gap_config: streamlit.proto.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: ...
        def HasField(self, field_name: typing.Literal["gap_config", b"gap_config"]) -> builtins.bool: ...
        def ClearField(self, field_name: 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"]) -> None: ...

    @typing.final
    class Column(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        class _VerticalAlignment:
            ValueType = typing.NewType("ValueType", builtins.int)
            V: typing_extensions.TypeAlias = ValueType

        class _VerticalAlignmentEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Block.Column._VerticalAlignment.ValueType], builtins.type):
            DESCRIPTOR: google.protobuf.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
        GAP_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
        gap: builtins.str
        """Deprecated. Use gap_size"""
        vertical_alignment: global___Block.Column.VerticalAlignment.ValueType
        show_border: builtins.bool
        @property
        def gap_config(self) -> streamlit.proto.GapSize_pb2.GapConfig: ...
        def __init__(
            self,
            *,
            weight: builtins.float = ...,
            gap: builtins.str = ...,
            vertical_alignment: global___Block.Column.VerticalAlignment.ValueType = ...,
            show_border: builtins.bool = ...,
            gap_config: streamlit.proto.GapSize_pb2.GapConfig | None = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["_gap_config", b"_gap_config", "gap_config", b"gap_config"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["_gap_config", b"_gap_config", "gap", b"gap", "gap_config", b"gap_config", "show_border", b"show_border", "vertical_alignment", b"vertical_alignment", "weight", b"weight"]) -> None: ...
        def WhichOneof(self, oneof_group: typing.Literal["_gap_config", b"_gap_config"]) -> typing.Literal["gap_config"] | None: ...

    @typing.final
    class Expandable(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        LABEL_FIELD_NUMBER: builtins.int
        EXPANDED_FIELD_NUMBER: builtins.int
        ICON_FIELD_NUMBER: builtins.int
        label: builtins.str
        expanded: builtins.bool
        icon: builtins.str
        def __init__(
            self,
            *,
            label: builtins.str = ...,
            expanded: builtins.bool | None = ...,
            icon: builtins.str = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["_expanded", b"_expanded", "expanded", b"expanded"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["_expanded", b"_expanded", "expanded", b"expanded", "icon", b"icon", "label", b"label"]) -> None: ...
        def WhichOneof(self, oneof_group: typing.Literal["_expanded", b"_expanded"]) -> typing.Literal["expanded"] | None: ...

    @typing.final
    class Dialog(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        class _DialogWidth:
            ValueType = typing.NewType("ValueType", builtins.int)
            V: typing_extensions.TypeAlias = ValueType

        class _DialogWidthEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Block.Dialog._DialogWidth.ValueType], builtins.type):
            DESCRIPTOR: google.protobuf.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

        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
        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."""
        def __init__(
            self,
            *,
            title: builtins.str = ...,
            dismissible: builtins.bool = ...,
            width: global___Block.Dialog.DialogWidth.ValueType = ...,
            is_open: builtins.bool | None = ...,
            id: builtins.str = ...,
        ) -> None: ...
        def HasField(self, field_name: typing.Literal["_is_open", b"_is_open", "is_open", b"is_open"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing.Literal["_is_open", b"_is_open", "dismissible", b"dismissible", "id", b"id", "is_open", b"is_open", "title", b"title", "width", b"width"]) -> None: ...
        def WhichOneof(self, oneof_group: typing.Literal["_is_open", b"_is_open"]) -> typing.Literal["is_open"] | None: ...

    @typing.final
    class Form(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.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: ...
        def ClearField(self, field_name: typing.Literal["border", b"border", "clear_on_submit", b"clear_on_submit", "enter_to_submit", b"enter_to_submit", "form_id", b"form_id"]) -> None: ...

    @typing.final
    class TabContainer(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        DEFAULT_TAB_INDEX_FIELD_NUMBER: builtins.int
        default_tab_index: builtins.int
        def __init__(
            self,
            *,
            default_tab_index: builtins.int = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["default_tab_index", b"default_tab_index"]) -> None: ...

    @typing.final
    class Tab(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        LABEL_FIELD_NUMBER: builtins.int
        label: builtins.str
        def __init__(
            self,
            *,
            label: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["label", b"label"]) -> None: ...

    @typing.final
    class Popover(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        LABEL_FIELD_NUMBER: builtins.int
        USE_CONTAINER_WIDTH_FIELD_NUMBER: builtins.int
        HELP_FIELD_NUMBER: builtins.int
        DISABLED_FIELD_NUMBER: builtins.int
        ICON_FIELD_NUMBER: builtins.int
        TYPE_FIELD_NUMBER: builtins.int
        label: builtins.str
        use_container_width: builtins.bool
        """DEPRECATED: We use widthConfig on the top-level which is shared."""
        help: builtins.str
        disabled: builtins.bool
        icon: builtins.str
        type: builtins.str
        def __init__(
            self,
            *,
            label: builtins.str = ...,
            use_container_width: builtins.bool = ...,
            help: builtins.str = ...,
            disabled: builtins.bool = ...,
            icon: builtins.str = ...,
            type: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["disabled", b"disabled", "help", b"help", "icon", b"icon", "label", b"label", "type", b"type", "use_container_width", b"use_container_width"]) -> None: ...

    @typing.final
    class ChatMessage(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        class _AvatarType:
            ValueType = typing.NewType("ValueType", builtins.int)
            V: typing_extensions.TypeAlias = ValueType

        class _AvatarTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Block.ChatMessage._AvatarType.ValueType], builtins.type):
            DESCRIPTOR: google.protobuf.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: ...
        def ClearField(self, field_name: typing.Literal["avatar", b"avatar", "avatar_type", b"avatar_type", "name", b"name"]) -> 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
    ALLOW_EMPTY_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    HEIGHT_CONFIG_FIELD_NUMBER: builtins.int
    WIDTH_CONFIG_FIELD_NUMBER: builtins.int
    allow_empty: builtins.bool
    id: builtins.str
    @property
    def vertical(self) -> global___Block.Vertical: ...
    @property
    def horizontal(self) -> global___Block.Horizontal: ...
    @property
    def column(self) -> global___Block.Column: ...
    @property
    def expandable(self) -> global___Block.Expandable: ...
    @property
    def form(self) -> global___Block.Form: ...
    @property
    def tab_container(self) -> global___Block.TabContainer: ...
    @property
    def tab(self) -> global___Block.Tab: ...
    @property
    def chat_message(self) -> global___Block.ChatMessage: ...
    @property
    def popover(self) -> global___Block.Popover: ...
    @property
    def dialog(self) -> global___Block.Dialog: ...
    @property
    def flex_container(self) -> global___Block.FlexContainer: ...
    @property
    def height_config(self) -> streamlit.proto.HeightConfig_pb2.HeightConfig: ...
    @property
    def width_config(self) -> streamlit.proto.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 = ...,
        allow_empty: builtins.bool = ...,
        id: builtins.str | None = ...,
        height_config: streamlit.proto.HeightConfig_pb2.HeightConfig | None = ...,
        width_config: streamlit.proto.WidthConfig_pb2.WidthConfig | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_height_config", b"_height_config", "_id", b"_id", "_width_config", b"_width_config", "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", "type", b"type", "vertical", b"vertical", "width_config", b"width_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_height_config", b"_height_config", "_id", b"_id", "_width_config", b"_width_config", "allow_empty", b"allow_empty", "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", "type", b"type", "vertical", b"vertical", "width_config", b"width_config"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_height_config", b"_height_config"]) -> typing.Literal["height_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_id", b"_id"]) -> typing.Literal["id"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_width_config", b"_width_config"]) -> typing.Literal["width_config"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["type", b"type"]) -> typing.Literal["vertical", "horizontal", "column", "expandable", "form", "tab_container", "tab", "chat_message", "popover", "dialog", "flex_container"] | None: ...

global___Block = Block
