import ares_data_schema_pb2 as _ares_data_schema_pb2
import ares_struct_pb2 as _ares_struct_pb2
from scripting import symbol_kind_pb2 as _symbol_kind_pb2
from scripting import symbol_tag_pb2 as _symbol_tag_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 ScriptSymbolMetadata(_message.Message):
    __slots__ = ("identifier", "parent_identifier", "kind", "tags", "detail", "documentation", "value_shape", "function_shape")
    class ValueShape(_message.Message):
        __slots__ = ("schema", "value")
        SCHEMA_FIELD_NUMBER: _ClassVar[int]
        VALUE_FIELD_NUMBER: _ClassVar[int]
        schema: _ares_data_schema_pb2.AresValueSchema
        value: _ares_struct_pb2.AresValue
        def __init__(self, schema: _Optional[_Union[_ares_data_schema_pb2.AresValueSchema, _Mapping]] = ..., value: _Optional[_Union[_ares_struct_pb2.AresValue, _Mapping]] = ...) -> None: ...
    class FunctionShape(_message.Message):
        __slots__ = ("input_schema", "output_schema")
        INPUT_SCHEMA_FIELD_NUMBER: _ClassVar[int]
        OUTPUT_SCHEMA_FIELD_NUMBER: _ClassVar[int]
        input_schema: _ares_data_schema_pb2.AresStructSchema
        output_schema: _ares_data_schema_pb2.AresValueSchema
        def __init__(self, input_schema: _Optional[_Union[_ares_data_schema_pb2.AresStructSchema, _Mapping]] = ..., output_schema: _Optional[_Union[_ares_data_schema_pb2.AresValueSchema, _Mapping]] = ...) -> None: ...
    IDENTIFIER_FIELD_NUMBER: _ClassVar[int]
    PARENT_IDENTIFIER_FIELD_NUMBER: _ClassVar[int]
    KIND_FIELD_NUMBER: _ClassVar[int]
    TAGS_FIELD_NUMBER: _ClassVar[int]
    DETAIL_FIELD_NUMBER: _ClassVar[int]
    DOCUMENTATION_FIELD_NUMBER: _ClassVar[int]
    VALUE_SHAPE_FIELD_NUMBER: _ClassVar[int]
    FUNCTION_SHAPE_FIELD_NUMBER: _ClassVar[int]
    identifier: str
    parent_identifier: str
    kind: _symbol_kind_pb2.SymbolKind
    tags: _containers.RepeatedScalarFieldContainer[_symbol_tag_pb2.SymbolTag]
    detail: str
    documentation: str
    value_shape: ScriptSymbolMetadata.ValueShape
    function_shape: ScriptSymbolMetadata.FunctionShape
    def __init__(self, identifier: _Optional[str] = ..., parent_identifier: _Optional[str] = ..., kind: _Optional[_Union[_symbol_kind_pb2.SymbolKind, str]] = ..., tags: _Optional[_Iterable[_Union[_symbol_tag_pb2.SymbolTag, str]]] = ..., detail: _Optional[str] = ..., documentation: _Optional[str] = ..., value_shape: _Optional[_Union[ScriptSymbolMetadata.ValueShape, _Mapping]] = ..., function_shape: _Optional[_Union[ScriptSymbolMetadata.FunctionShape, _Mapping]] = ...) -> None: ...
