import ares_data_schema_pb2 as _ares_data_schema_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from collections.abc import Iterable as _Iterable, Mapping as _Mapping
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class SignatureParameter(_message.Message):
    __slots__ = ("name", "schema", "documentation")
    NAME_FIELD_NUMBER: _ClassVar[int]
    SCHEMA_FIELD_NUMBER: _ClassVar[int]
    DOCUMENTATION_FIELD_NUMBER: _ClassVar[int]
    name: str
    schema: _ares_data_schema_pb2.AresValueSchema
    documentation: str
    def __init__(self, name: _Optional[str] = ..., schema: _Optional[_Union[_ares_data_schema_pb2.AresValueSchema, _Mapping]] = ..., documentation: _Optional[str] = ...) -> None: ...

class FunctionSignature(_message.Message):
    __slots__ = ("label", "documentation", "parameters", "return_schema")
    LABEL_FIELD_NUMBER: _ClassVar[int]
    DOCUMENTATION_FIELD_NUMBER: _ClassVar[int]
    PARAMETERS_FIELD_NUMBER: _ClassVar[int]
    RETURN_SCHEMA_FIELD_NUMBER: _ClassVar[int]
    label: str
    documentation: str
    parameters: _containers.RepeatedCompositeFieldContainer[SignatureParameter]
    return_schema: _ares_data_schema_pb2.AresValueSchema
    def __init__(self, label: _Optional[str] = ..., documentation: _Optional[str] = ..., parameters: _Optional[_Iterable[_Union[SignatureParameter, _Mapping]]] = ..., return_schema: _Optional[_Union[_ares_data_schema_pb2.AresValueSchema, _Mapping]] = ...) -> None: ...

class SignatureHelp(_message.Message):
    __slots__ = ("signatures", "active_signature", "active_parameter")
    SIGNATURES_FIELD_NUMBER: _ClassVar[int]
    ACTIVE_SIGNATURE_FIELD_NUMBER: _ClassVar[int]
    ACTIVE_PARAMETER_FIELD_NUMBER: _ClassVar[int]
    signatures: _containers.RepeatedCompositeFieldContainer[FunctionSignature]
    active_signature: int
    active_parameter: int
    def __init__(self, signatures: _Optional[_Iterable[_Union[FunctionSignature, _Mapping]]] = ..., active_signature: _Optional[int] = ..., active_parameter: _Optional[int] = ...) -> None: ...
