"""
@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 sys
import typing

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class OpenAIProviderDescriptor(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODELS_FIELD_NUMBER: builtins.int
    @property
    def models(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___OpenAIModelDescriptor]: ...
    def __init__(
        self,
        *,
        models: collections.abc.Iterable[global___OpenAIModelDescriptor] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["models", b"models"]) -> None: ...

global___OpenAIProviderDescriptor = OpenAIProviderDescriptor

class OpenAIModelDescriptor(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_ID_FIELD_NUMBER: builtins.int
    CAPABILITIES_FIELD_NUMBER: builtins.int
    model_id: builtins.str
    @property
    def capabilities(self) -> global___OpenAICapabilities: ...
    def __init__(
        self,
        *,
        model_id: builtins.str = ...,
        capabilities: global___OpenAICapabilities | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["capabilities", b"capabilities"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["capabilities", b"capabilities", "model_id", b"model_id"]) -> None: ...

global___OpenAIModelDescriptor = OpenAIModelDescriptor

class OpenAIChatModelParams(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FREQUENCY_PENALTY_FIELD_NUMBER: builtins.int
    LOGIT_BIAS_FIELD_NUMBER: builtins.int
    LOGPROBS_FIELD_NUMBER: builtins.int
    MAX_TOKENS_FIELD_NUMBER: builtins.int
    N_FIELD_NUMBER: builtins.int
    PRESENCE_PENALTY_FIELD_NUMBER: builtins.int
    RESPONSE_FORMAT_FIELD_NUMBER: builtins.int
    SEED_FIELD_NUMBER: builtins.int
    STOP_FIELD_NUMBER: builtins.int
    TEMPERATURE_FIELD_NUMBER: builtins.int
    TOOL_CHOICE_FIELD_NUMBER: builtins.int
    TOOLS_SPEC_FIELD_NUMBER: builtins.int
    TOP_LOGPROBS_FIELD_NUMBER: builtins.int
    TOP_P_FIELD_NUMBER: builtins.int
    USER_FIELD_NUMBER: builtins.int
    frequency_penalty: builtins.float
    @property
    def logit_bias(self) -> google.protobuf.struct_pb2.Struct:
        """json object of string to int"""
    logprobs: builtins.bool
    max_tokens: builtins.int
    n: builtins.int
    presence_penalty: builtins.float
    response_format: builtins.str
    seed: builtins.int
    @property
    def stop(self) -> google.protobuf.struct_pb2.ListValue:
        """Json list of strings"""
    temperature: builtins.float
    @property
    def tool_choice(self) -> global___ToolChoice: ...
    @property
    def tools_spec(self) -> global___Tools: ...
    top_logprobs: builtins.int
    top_p: builtins.float
    user: builtins.str
    def __init__(
        self,
        *,
        frequency_penalty: builtins.float = ...,
        logit_bias: google.protobuf.struct_pb2.Struct | None = ...,
        logprobs: builtins.bool = ...,
        max_tokens: builtins.int = ...,
        n: builtins.int = ...,
        presence_penalty: builtins.float = ...,
        response_format: builtins.str = ...,
        seed: builtins.int = ...,
        stop: google.protobuf.struct_pb2.ListValue | None = ...,
        temperature: builtins.float = ...,
        tool_choice: global___ToolChoice | None = ...,
        tools_spec: global___Tools | None = ...,
        top_logprobs: builtins.int = ...,
        top_p: builtins.float = ...,
        user: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["frequency_penalty", b"frequency_penalty", "logit_bias", b"logit_bias", "logprobs", b"logprobs", "max_tokens", b"max_tokens", "n", b"n", "optional_frequency_penalty", b"optional_frequency_penalty", "optional_logit_bias", b"optional_logit_bias", "optional_logprobs", b"optional_logprobs", "optional_max_tokens", b"optional_max_tokens", "optional_n", b"optional_n", "optional_presence_penalty", b"optional_presence_penalty", "optional_response_format", b"optional_response_format", "optional_seed", b"optional_seed", "optional_stop", b"optional_stop", "optional_temperature", b"optional_temperature", "optional_tool_choice", b"optional_tool_choice", "optional_tools", b"optional_tools", "optional_top_logprobs", b"optional_top_logprobs", "optional_top_p", b"optional_top_p", "optional_user", b"optional_user", "presence_penalty", b"presence_penalty", "response_format", b"response_format", "seed", b"seed", "stop", b"stop", "temperature", b"temperature", "tool_choice", b"tool_choice", "tools_spec", b"tools_spec", "top_logprobs", b"top_logprobs", "top_p", b"top_p", "user", b"user"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["frequency_penalty", b"frequency_penalty", "logit_bias", b"logit_bias", "logprobs", b"logprobs", "max_tokens", b"max_tokens", "n", b"n", "optional_frequency_penalty", b"optional_frequency_penalty", "optional_logit_bias", b"optional_logit_bias", "optional_logprobs", b"optional_logprobs", "optional_max_tokens", b"optional_max_tokens", "optional_n", b"optional_n", "optional_presence_penalty", b"optional_presence_penalty", "optional_response_format", b"optional_response_format", "optional_seed", b"optional_seed", "optional_stop", b"optional_stop", "optional_temperature", b"optional_temperature", "optional_tool_choice", b"optional_tool_choice", "optional_tools", b"optional_tools", "optional_top_logprobs", b"optional_top_logprobs", "optional_top_p", b"optional_top_p", "optional_user", b"optional_user", "presence_penalty", b"presence_penalty", "response_format", b"response_format", "seed", b"seed", "stop", b"stop", "temperature", b"temperature", "tool_choice", b"tool_choice", "tools_spec", b"tools_spec", "top_logprobs", b"top_logprobs", "top_p", b"top_p", "user", b"user"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_frequency_penalty", b"optional_frequency_penalty"]) -> typing_extensions.Literal["frequency_penalty"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_logit_bias", b"optional_logit_bias"]) -> typing_extensions.Literal["logit_bias"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_logprobs", b"optional_logprobs"]) -> typing_extensions.Literal["logprobs"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_max_tokens", b"optional_max_tokens"]) -> typing_extensions.Literal["max_tokens"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_n", b"optional_n"]) -> typing_extensions.Literal["n"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_presence_penalty", b"optional_presence_penalty"]) -> typing_extensions.Literal["presence_penalty"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_response_format", b"optional_response_format"]) -> typing_extensions.Literal["response_format"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_seed", b"optional_seed"]) -> typing_extensions.Literal["seed"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_stop", b"optional_stop"]) -> typing_extensions.Literal["stop"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_temperature", b"optional_temperature"]) -> typing_extensions.Literal["temperature"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_tool_choice", b"optional_tool_choice"]) -> typing_extensions.Literal["tool_choice"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_tools", b"optional_tools"]) -> typing_extensions.Literal["tools_spec"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_top_logprobs", b"optional_top_logprobs"]) -> typing_extensions.Literal["top_logprobs"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_top_p", b"optional_top_p"]) -> typing_extensions.Literal["top_p"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_user", b"optional_user"]) -> typing_extensions.Literal["user"] | None: ...

global___OpenAIChatModelParams = OpenAIChatModelParams

class Tools(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TOOLS_FIELD_NUMBER: builtins.int
    @property
    def tools(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.struct_pb2.Struct]: ...
    def __init__(
        self,
        *,
        tools: collections.abc.Iterable[google.protobuf.struct_pb2.Struct] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["tools", b"tools"]) -> None: ...

global___Tools = Tools

class ToolChoice(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    JSON_FIELD_NUMBER: builtins.int
    LITERAL_FIELD_NUMBER: builtins.int
    @property
    def json(self) -> google.protobuf.struct_pb2.Struct: ...
    literal: builtins.str
    def __init__(
        self,
        *,
        json: google.protobuf.struct_pb2.Struct | None = ...,
        literal: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["json", b"json", "literal", b"literal", "value_type", b"value_type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["json", b"json", "literal", b"literal", "value_type", b"value_type"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["value_type", b"value_type"]) -> typing_extensions.Literal["json", "literal"] | None: ...

global___ToolChoice = ToolChoice

class OpenAICapabilities(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CHAT_API_FIELD_NUMBER: builtins.int
    @property
    def chat_api(self) -> global___OpenAIChatAPI: ...
    def __init__(
        self,
        *,
        chat_api: global___OpenAIChatAPI | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["chat_api", b"chat_api", "optional_chat", b"optional_chat"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["chat_api", b"chat_api", "optional_chat", b"optional_chat"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_chat", b"optional_chat"]) -> typing_extensions.Literal["chat_api"] | None: ...

global___OpenAICapabilities = OpenAICapabilities

class OpenAIChatAPI(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CHAT_PARAMS_FIELD_NUMBER: builtins.int
    @property
    def chat_params(self) -> global___OpenAIChatModelParams: ...
    def __init__(
        self,
        *,
        chat_params: global___OpenAIChatModelParams | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["chat_params", b"chat_params", "optional_chat_params", b"optional_chat_params"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["chat_params", b"chat_params", "optional_chat_params", b"optional_chat_params"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_chat_params", b"optional_chat_params"]) -> typing_extensions.Literal["chat_params"] | None: ...

global___OpenAIChatAPI = OpenAIChatAPI
