"""
@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 StringArray(_message.Message):
    """Message types that are common to multiple protobufs."""

    DESCRIPTOR: _descriptor.Descriptor

    DATA_FIELD_NUMBER: _builtins.int
    @_builtins.property
    def data(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
    def __init__(
        self,
        *,
        data: _abc.Iterable[_builtins.str] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___StringArray: _TypeAlias = StringArray  # noqa: Y015

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

    DATA_FIELD_NUMBER: _builtins.int
    @_builtins.property
    def data(self) -> _containers.RepeatedScalarFieldContainer[_builtins.float]: ...
    def __init__(
        self,
        *,
        data: _abc.Iterable[_builtins.float] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___DoubleArray: _TypeAlias = DoubleArray  # noqa: Y015

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

    DATA_FIELD_NUMBER: _builtins.int
    @_builtins.property
    def data(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ...
    def __init__(
        self,
        *,
        data: _abc.Iterable[_builtins.int] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___Int32Array: _TypeAlias = Int32Array  # noqa: Y015

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

    DATA_FIELD_NUMBER: _builtins.int
    @_builtins.property
    def data(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ...
    def __init__(
        self,
        *,
        data: _abc.Iterable[_builtins.int] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___Int64Array: _TypeAlias = Int64Array  # noqa: Y015

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

    DATA_FIELD_NUMBER: _builtins.int
    @_builtins.property
    def data(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ...
    def __init__(
        self,
        *,
        data: _abc.Iterable[_builtins.int] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___SInt64Array: _TypeAlias = SInt64Array  # noqa: Y015

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

    DATA_FIELD_NUMBER: _builtins.int
    @_builtins.property
    def data(self) -> _containers.RepeatedScalarFieldContainer[_builtins.int]: ...
    def __init__(
        self,
        *,
        data: _abc.Iterable[_builtins.int] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["data", b"data"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UInt32Array: _TypeAlias = UInt32Array  # noqa: Y015

@_typing.final
class StringTriggerValue(_message.Message):
    """A trigger value that carries a single string payload.
    Used for trigger-based widgets that need to return a string value
    (e.g., menu button selections). The value auto-resets after each script run.
    """

    DESCRIPTOR: _descriptor.Descriptor

    DATA_FIELD_NUMBER: _builtins.int
    data: _builtins.str
    def __init__(
        self,
        *,
        data: _builtins.str | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["_data", b"_data", "data", b"data"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["_data", b"_data", "data", b"data"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
    _WhichOneofReturnType__data: _TypeAlias = _typing.Literal["data"]  # noqa: Y015
    _WhichOneofArgType__data: _TypeAlias = _typing.Literal["_data", b"_data"]  # noqa: Y015
    def WhichOneof(self, oneof_group: _WhichOneofArgType__data) -> _WhichOneofReturnType__data | None: ...

Global___StringTriggerValue: _TypeAlias = StringTriggerValue  # noqa: Y015

@_typing.final
class FileURLsRequest(_message.Message):
    """NOTE: The FileURLsRequest, FileURLs, and FileURLsResponse message types
    must remain stable as some external services rely on them to support
    `st.file_uploader`. These types aren't completely set in stone, but changing
    them requires a good amount of effort so should be avoided if possible.
    """

    DESCRIPTOR: _descriptor.Descriptor

    REQUEST_ID_FIELD_NUMBER: _builtins.int
    FILE_NAMES_FIELD_NUMBER: _builtins.int
    SESSION_ID_FIELD_NUMBER: _builtins.int
    request_id: _builtins.str
    session_id: _builtins.str
    @_builtins.property
    def file_names(self) -> _containers.RepeatedScalarFieldContainer[_builtins.str]: ...
    def __init__(
        self,
        *,
        request_id: _builtins.str = ...,
        file_names: _abc.Iterable[_builtins.str] | None = ...,
        session_id: _builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["file_names", b"file_names", "request_id", b"request_id", "session_id", b"session_id"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___FileURLsRequest: _TypeAlias = FileURLsRequest  # noqa: Y015

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

    FILE_ID_FIELD_NUMBER: _builtins.int
    UPLOAD_URL_FIELD_NUMBER: _builtins.int
    DELETE_URL_FIELD_NUMBER: _builtins.int
    file_id: _builtins.str
    upload_url: _builtins.str
    delete_url: _builtins.str
    def __init__(
        self,
        *,
        file_id: _builtins.str = ...,
        upload_url: _builtins.str = ...,
        delete_url: _builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["delete_url", b"delete_url", "file_id", b"file_id", "upload_url", b"upload_url"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___FileURLs: _TypeAlias = FileURLs  # noqa: Y015

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

    RESPONSE_ID_FIELD_NUMBER: _builtins.int
    FILE_URLS_FIELD_NUMBER: _builtins.int
    ERROR_MSG_FIELD_NUMBER: _builtins.int
    response_id: _builtins.str
    error_msg: _builtins.str
    @_builtins.property
    def file_urls(self) -> _containers.RepeatedCompositeFieldContainer[Global___FileURLs]: ...
    def __init__(
        self,
        *,
        response_id: _builtins.str = ...,
        file_urls: _abc.Iterable[Global___FileURLs] | None = ...,
        error_msg: _builtins.str = ...,
    ) -> None: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["error_msg", b"error_msg", "file_urls", b"file_urls", "response_id", b"response_id"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___FileURLsResponse: _TypeAlias = FileURLsResponse  # noqa: Y015

@_typing.final
class UploadedFileInfo(_message.Message):
    """Information on a file uploaded via the file_uploader widget."""

    DESCRIPTOR: _descriptor.Descriptor

    NAME_FIELD_NUMBER: _builtins.int
    SIZE_FIELD_NUMBER: _builtins.int
    FILE_ID_FIELD_NUMBER: _builtins.int
    FILE_URLS_FIELD_NUMBER: _builtins.int
    name: _builtins.str
    size: _builtins.int
    """The size of this file in bytes."""
    file_id: _builtins.str
    """ID that can be used to retrieve a file."""
    @_builtins.property
    def file_urls(self) -> Global___FileURLs:
        """Metadata containing information about file_urls."""

    def __init__(
        self,
        *,
        name: _builtins.str = ...,
        size: _builtins.int = ...,
        file_id: _builtins.str = ...,
        file_urls: Global___FileURLs | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["file_urls", b"file_urls"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["file_id", b"file_id", "file_urls", b"file_urls", "name", b"name", "size", b"size"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___UploadedFileInfo: _TypeAlias = UploadedFileInfo  # noqa: Y015

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

    UPLOADED_FILE_INFO_FIELD_NUMBER: _builtins.int
    @_builtins.property
    def uploaded_file_info(self) -> _containers.RepeatedCompositeFieldContainer[Global___UploadedFileInfo]: ...
    def __init__(
        self,
        *,
        uploaded_file_info: _abc.Iterable[Global___UploadedFileInfo] | None = ...,
    ) -> None: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["uploaded_file_info", b"uploaded_file_info"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...

Global___FileUploaderState: _TypeAlias = FileUploaderState  # noqa: Y015

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

    DATA_FIELD_NUMBER: _builtins.int
    FILE_UPLOADER_STATE_FIELD_NUMBER: _builtins.int
    AUDIO_FILE_INFO_FIELD_NUMBER: _builtins.int
    data: _builtins.str
    @_builtins.property
    def file_uploader_state(self) -> Global___FileUploaderState: ...
    @_builtins.property
    def audio_file_info(self) -> Global___UploadedFileInfo: ...
    def __init__(
        self,
        *,
        data: _builtins.str | None = ...,
        file_uploader_state: Global___FileUploaderState | None = ...,
        audio_file_info: Global___UploadedFileInfo | None = ...,
    ) -> None: ...
    _HasFieldArgType: _TypeAlias = _typing.Literal["_audio_file_info", b"_audio_file_info", "_data", b"_data", "_file_uploader_state", b"_file_uploader_state", "audio_file_info", b"audio_file_info", "data", b"data", "file_uploader_state", b"file_uploader_state"]  # noqa: Y015
    def HasField(self, field_name: _HasFieldArgType) -> _builtins.bool: ...
    _ClearFieldArgType: _TypeAlias = _typing.Literal["_audio_file_info", b"_audio_file_info", "_data", b"_data", "_file_uploader_state", b"_file_uploader_state", "audio_file_info", b"audio_file_info", "data", b"data", "file_uploader_state", b"file_uploader_state"]  # noqa: Y015
    def ClearField(self, field_name: _ClearFieldArgType) -> None: ...
    _WhichOneofReturnType__audio_file_info: _TypeAlias = _typing.Literal["audio_file_info"]  # noqa: Y015
    _WhichOneofArgType__audio_file_info: _TypeAlias = _typing.Literal["_audio_file_info", b"_audio_file_info"]  # noqa: Y015
    _WhichOneofReturnType__data: _TypeAlias = _typing.Literal["data"]  # noqa: Y015
    _WhichOneofArgType__data: _TypeAlias = _typing.Literal["_data", b"_data"]  # noqa: Y015
    _WhichOneofReturnType__file_uploader_state: _TypeAlias = _typing.Literal["file_uploader_state"]  # noqa: Y015
    _WhichOneofArgType__file_uploader_state: _TypeAlias = _typing.Literal["_file_uploader_state", b"_file_uploader_state"]  # noqa: Y015
    @_typing.overload
    def WhichOneof(self, oneof_group: _WhichOneofArgType__audio_file_info) -> _WhichOneofReturnType__audio_file_info | None: ...
    @_typing.overload
    def WhichOneof(self, oneof_group: _WhichOneofArgType__data) -> _WhichOneofReturnType__data | None: ...
    @_typing.overload
    def WhichOneof(self, oneof_group: _WhichOneofArgType__file_uploader_state) -> _WhichOneofReturnType__file_uploader_state | None: ...

Global___ChatInputValue: _TypeAlias = ChatInputValue  # noqa: Y015
