from google.protobuf import empty_pb2 as _empty_pb2
from scripting import autocomplete_catalog_pb2 as _autocomplete_catalog_pb2
from scripting import completion_pb2 as _completion_pb2
from scripting import diagnostic_pb2 as _diagnostic_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 ScriptExecutionRequest(_message.Message):
    __slots__ = ("script",)
    SCRIPT_FIELD_NUMBER: _ClassVar[int]
    script: str
    def __init__(self, script: _Optional[str] = ...) -> None: ...

class ScriptExecutionOutput(_message.Message):
    __slots__ = ("output",)
    OUTPUT_FIELD_NUMBER: _ClassVar[int]
    output: str
    def __init__(self, output: _Optional[str] = ...) -> None: ...

class ValidateScriptRequest(_message.Message):
    __slots__ = ("script",)
    SCRIPT_FIELD_NUMBER: _ClassVar[int]
    script: str
    def __init__(self, script: _Optional[str] = ...) -> None: ...

class ValidateScriptResponse(_message.Message):
    __slots__ = ("diagnostics",)
    DIAGNOSTICS_FIELD_NUMBER: _ClassVar[int]
    diagnostics: _containers.RepeatedCompositeFieldContainer[_diagnostic_pb2.Diagnostic]
    def __init__(self, diagnostics: _Optional[_Iterable[_Union[_diagnostic_pb2.Diagnostic, _Mapping]]] = ...) -> None: ...

class AutocompleteCatalogResponse(_message.Message):
    __slots__ = ("catalog",)
    CATALOG_FIELD_NUMBER: _ClassVar[int]
    catalog: _autocomplete_catalog_pb2.AutocompleteCatalog
    def __init__(self, catalog: _Optional[_Union[_autocomplete_catalog_pb2.AutocompleteCatalog, _Mapping]] = ...) -> None: ...

class CompletionRequest(_message.Message):
    __slots__ = ("script", "cursor_line", "cursor_column", "trigger_character")
    SCRIPT_FIELD_NUMBER: _ClassVar[int]
    CURSOR_LINE_FIELD_NUMBER: _ClassVar[int]
    CURSOR_COLUMN_FIELD_NUMBER: _ClassVar[int]
    TRIGGER_CHARACTER_FIELD_NUMBER: _ClassVar[int]
    script: str
    cursor_line: int
    cursor_column: int
    trigger_character: str
    def __init__(self, script: _Optional[str] = ..., cursor_line: _Optional[int] = ..., cursor_column: _Optional[int] = ..., trigger_character: _Optional[str] = ...) -> None: ...

class CompletionResponse(_message.Message):
    __slots__ = ("items",)
    ITEMS_FIELD_NUMBER: _ClassVar[int]
    items: _containers.RepeatedCompositeFieldContainer[_completion_pb2.CompletionItem]
    def __init__(self, items: _Optional[_Iterable[_Union[_completion_pb2.CompletionItem, _Mapping]]] = ...) -> None: ...
