"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import google.protobuf.struct_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class Session(google.protobuf.message.Message):
    """//////////////////////////////////////////////////////////////////////"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CLIENT_INFO_FIELD_NUMBER: builtins.int
    STREAM_IDS_FIELD_NUMBER: builtins.int
    @property
    def client_info(self) -> global___Implementation:
        """Client info we initialized with, optional to distinguish when
        initialization has occured.
        """

    @property
    def stream_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        client_info: global___Implementation | None = ...,
        stream_ids: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_client_info", b"_client_info", "client_info", b"client_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_client_info", b"_client_info", "client_info", b"client_info", "stream_ids", b"stream_ids"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_client_info", b"_client_info"]) -> typing.Literal["client_info"] | None: ...

global___Session = Session

@typing.final
class Implementation(google.protobuf.message.Message):
    """//////////////////////////////////////////////////////////////////////"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    TITLE_FIELD_NUMBER: builtins.int
    VERSION_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Technically `name` is _supposed_ to be
    required, but it does not look like that is enforced
    by the Pydantic models, so we're making it optional, see:
    github.com/modelcontextprotocol/python-sdk/blob/main/src/mcp/types.py#L231
    """
    title: builtins.str
    version: builtins.str
    def __init__(
        self,
        *,
        name: builtins.str | None = ...,
        title: builtins.str | None = ...,
        version: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_name", b"_name", "_title", b"_title", "name", b"name", "title", b"title"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_name", b"_name", "_title", b"_title", "name", b"name", "title", b"title", "version", b"version"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_name", b"_name"]) -> typing.Literal["name"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_title", b"_title"]) -> typing.Literal["title"] | None: ...

global___Implementation = Implementation

@typing.final
class HandleMessageRequest(google.protobuf.message.Message):
    """//////////////////////////////////////////////////////////////////////"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PATH_FIELD_NUMBER: builtins.int
    MESSAGE_BYTES_FIELD_NUMBER: builtins.int
    ACCESS_TOKEN_FIELD_NUMBER: builtins.int
    path: builtins.str
    message_bytes: builtins.bytes
    @property
    def access_token(self) -> google.protobuf.struct_pb2.Value: ...
    def __init__(
        self,
        *,
        path: builtins.str = ...,
        message_bytes: builtins.bytes = ...,
        access_token: google.protobuf.struct_pb2.Value | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_access_token", b"_access_token", "access_token", b"access_token"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_access_token", b"_access_token", "access_token", b"access_token", "message_bytes", b"message_bytes", "path", b"path"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_access_token", b"_access_token"]) -> typing.Literal["access_token"] | None: ...

global___HandleMessageRequest = HandleMessageRequest

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

    def __init__(
        self,
    ) -> None: ...

global___HandleMessageResponse = HandleMessageResponse

@typing.final
class RunRequest(google.protobuf.message.Message):
    """//////////////////////////////////////////////////////////////////////"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PATH_FIELD_NUMBER: builtins.int
    MESSAGE_BYTES_FIELD_NUMBER: builtins.int
    ACCESS_TOKEN_FIELD_NUMBER: builtins.int
    path: builtins.str
    message_bytes: builtins.bytes
    @property
    def access_token(self) -> google.protobuf.struct_pb2.Value: ...
    def __init__(
        self,
        *,
        path: builtins.str = ...,
        message_bytes: builtins.bytes = ...,
        access_token: google.protobuf.struct_pb2.Value | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_access_token", b"_access_token", "access_token", b"access_token"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_access_token", b"_access_token", "access_token", b"access_token", "message_bytes", b"message_bytes", "path", b"path"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_access_token", b"_access_token"]) -> typing.Literal["access_token"] | None: ...

global___RunRequest = RunRequest

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

    def __init__(
        self,
    ) -> None: ...

global___RunResponse = RunResponse

@typing.final
class GetRequest(google.protobuf.message.Message):
    """//////////////////////////////////////////////////////////////////////"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___GetRequest = GetRequest

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

    CLIENT_INFO_FIELD_NUMBER: builtins.int
    STREAM_IDS_FIELD_NUMBER: builtins.int
    @property
    def client_info(self) -> global___Implementation: ...
    @property
    def stream_ids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        client_info: global___Implementation | None = ...,
        stream_ids: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_client_info", b"_client_info", "client_info", b"client_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_client_info", b"_client_info", "client_info", b"client_info", "stream_ids", b"stream_ids"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["_client_info", b"_client_info"]) -> typing.Literal["client_info"] | None: ...

global___GetResponse = GetResponse
