from scripting import script_symbol_metadata_pb2 as _script_symbol_metadata_pb2
from scripting import symbol_kind_pb2 as _symbol_kind_pb2
import ares_data_schema_pb2 as _ares_data_schema_pb2
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from collections.abc import Mapping as _Mapping
from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union

DESCRIPTOR: _descriptor.FileDescriptor

class InsertTextFormat(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    INSERT_TEXT_FORMAT_PLAIN_TEXT: _ClassVar[InsertTextFormat]
    INSERT_TEXT_FORMAT_SNIPPET: _ClassVar[InsertTextFormat]
INSERT_TEXT_FORMAT_PLAIN_TEXT: InsertTextFormat
INSERT_TEXT_FORMAT_SNIPPET: InsertTextFormat

class CompletionItem(_message.Message):
    __slots__ = ("label", "insert_text", "insert_text_format", "sort_text", "metadata", "detail", "documentation", "kind", "parent_identifier", "input_schema", "output_schema", "schema")
    LABEL_FIELD_NUMBER: _ClassVar[int]
    INSERT_TEXT_FIELD_NUMBER: _ClassVar[int]
    INSERT_TEXT_FORMAT_FIELD_NUMBER: _ClassVar[int]
    SORT_TEXT_FIELD_NUMBER: _ClassVar[int]
    METADATA_FIELD_NUMBER: _ClassVar[int]
    DETAIL_FIELD_NUMBER: _ClassVar[int]
    DOCUMENTATION_FIELD_NUMBER: _ClassVar[int]
    KIND_FIELD_NUMBER: _ClassVar[int]
    PARENT_IDENTIFIER_FIELD_NUMBER: _ClassVar[int]
    INPUT_SCHEMA_FIELD_NUMBER: _ClassVar[int]
    OUTPUT_SCHEMA_FIELD_NUMBER: _ClassVar[int]
    SCHEMA_FIELD_NUMBER: _ClassVar[int]
    label: str
    insert_text: str
    insert_text_format: InsertTextFormat
    sort_text: str
    metadata: _script_symbol_metadata_pb2.ScriptSymbolMetadata
    detail: str
    documentation: str
    kind: _symbol_kind_pb2.SymbolKind
    parent_identifier: str
    input_schema: _ares_data_schema_pb2.AresStructSchema
    output_schema: _ares_data_schema_pb2.AresValueSchema
    schema: _ares_data_schema_pb2.AresValueSchema
    def __init__(self, label: _Optional[str] = ..., insert_text: _Optional[str] = ..., insert_text_format: _Optional[_Union[InsertTextFormat, str]] = ..., sort_text: _Optional[str] = ..., metadata: _Optional[_Union[_script_symbol_metadata_pb2.ScriptSymbolMetadata, _Mapping]] = ..., detail: _Optional[str] = ..., documentation: _Optional[str] = ..., kind: _Optional[_Union[_symbol_kind_pb2.SymbolKind, str]] = ..., parent_identifier: _Optional[str] = ..., input_schema: _Optional[_Union[_ares_data_schema_pb2.AresStructSchema, _Mapping]] = ..., output_schema: _Optional[_Union[_ares_data_schema_pb2.AresValueSchema, _Mapping]] = ..., schema: _Optional[_Union[_ares_data_schema_pb2.AresValueSchema, _Mapping]] = ...) -> None: ...
