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

import builtins
import google.protobuf.descriptor
import google.protobuf.message
import google.protobuf.wrappers_pb2
import typing

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing.final
class GenerationOptions(google.protobuf.message.Message):
    """Defines the options for text generation."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PARTIAL_RESULTS_FIELD_NUMBER: builtins.int
    TEMPERATURE_FIELD_NUMBER: builtins.int
    MAX_TOKENS_FIELD_NUMBER: builtins.int
    partial_results: builtins.bool
    """Enables streaming of partially generated text."""
    @property
    def temperature(self) -> google.protobuf.wrappers_pb2.DoubleValue:
        """Affects creativity and randomness of responses. Should be a double number between 0 (inclusive) and 1 (inclusive).
        Lower values produce more straightforward responses, while higher values lead to increased creativity and randomness.
        """

    @property
    def max_tokens(self) -> google.protobuf.wrappers_pb2.Int64Value:
        """Sets the maximum limit on the total number of tokens used for both the input prompt and the generated response.
        Must be greater than zero and not exceed 7400 tokens.
        """

    def __init__(
        self,
        *,
        partial_results: builtins.bool = ...,
        temperature: google.protobuf.wrappers_pb2.DoubleValue | None = ...,
        max_tokens: google.protobuf.wrappers_pb2.Int64Value | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["max_tokens", b"max_tokens", "temperature", b"temperature"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["max_tokens", b"max_tokens", "partial_results", b"partial_results", "temperature", b"temperature"]) -> None: ...

global___GenerationOptions = GenerationOptions

@typing.final
class Alternative(google.protobuf.message.Message):
    """Represents an alternative generated response, including its score and token count."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TEXT_FIELD_NUMBER: builtins.int
    SCORE_FIELD_NUMBER: builtins.int
    NUM_TOKENS_FIELD_NUMBER: builtins.int
    text: builtins.str
    """The generated text response."""
    score: builtins.float
    """The score or confidence of the generated text."""
    num_tokens: builtins.int
    """The number of tokens in the generated response."""
    def __init__(
        self,
        *,
        text: builtins.str = ...,
        score: builtins.float = ...,
        num_tokens: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["num_tokens", b"num_tokens", "score", b"score", "text", b"text"]) -> None: ...

global___Alternative = Alternative

@typing.final
class Message(google.protobuf.message.Message):
    """Represents a message within a chat."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ROLE_FIELD_NUMBER: builtins.int
    TEXT_FIELD_NUMBER: builtins.int
    role: builtins.str
    """Identifies the sender of the message."""
    text: builtins.str
    """The text content of the message."""
    def __init__(
        self,
        *,
        role: builtins.str = ...,
        text: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["role", b"role", "text", b"text"]) -> None: ...

global___Message = Message

@typing.final
class Token(google.protobuf.message.Message):
    """Represents a token, the basic unit of text, used by the LLM."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    TEXT_FIELD_NUMBER: builtins.int
    SPECIAL_FIELD_NUMBER: builtins.int
    id: builtins.int
    """An internal token identifier."""
    text: builtins.str
    """The textual representation of the token."""
    special: builtins.bool
    """Indicates whether the token is special or not. Special tokens define the model's behavior and are not visible to users."""
    def __init__(
        self,
        *,
        id: builtins.int = ...,
        text: builtins.str = ...,
        special: builtins.bool = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["id", b"id", "special", b"special", "text", b"text"]) -> None: ...

global___Token = Token
