import ares_struct_pb2 as _ares_struct_pb2
from scripting import completion_pb2 as _completion_pb2
from scripting import diagnostic_pb2 as _diagnostic_pb2
from scripting import navigation_pb2 as _navigation_pb2
from scripting import script_summary_step_pb2 as _script_summary_step_pb2
from scripting import script_symbol_metadata_pb2 as _script_symbol_metadata_pb2
from scripting import signature_help_pb2 as _signature_help_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 ScriptExecutionEvent(_message.Message):
    __slots__ = ("sequence", "execution_started", "execution_completed", "execution_failed", "console_output", "function_started", "function_completed", "function_failed")
    SEQUENCE_FIELD_NUMBER: _ClassVar[int]
    EXECUTION_STARTED_FIELD_NUMBER: _ClassVar[int]
    EXECUTION_COMPLETED_FIELD_NUMBER: _ClassVar[int]
    EXECUTION_FAILED_FIELD_NUMBER: _ClassVar[int]
    CONSOLE_OUTPUT_FIELD_NUMBER: _ClassVar[int]
    FUNCTION_STARTED_FIELD_NUMBER: _ClassVar[int]
    FUNCTION_COMPLETED_FIELD_NUMBER: _ClassVar[int]
    FUNCTION_FAILED_FIELD_NUMBER: _ClassVar[int]
    sequence: int
    execution_started: ExecutionStarted
    execution_completed: ExecutionCompleted
    execution_failed: ExecutionFailed
    console_output: ConsoleOutput
    function_started: FunctionStarted
    function_completed: FunctionCompleted
    function_failed: FunctionFailed
    def __init__(self, sequence: _Optional[int] = ..., execution_started: _Optional[_Union[ExecutionStarted, _Mapping]] = ..., execution_completed: _Optional[_Union[ExecutionCompleted, _Mapping]] = ..., execution_failed: _Optional[_Union[ExecutionFailed, _Mapping]] = ..., console_output: _Optional[_Union[ConsoleOutput, _Mapping]] = ..., function_started: _Optional[_Union[FunctionStarted, _Mapping]] = ..., function_completed: _Optional[_Union[FunctionCompleted, _Mapping]] = ..., function_failed: _Optional[_Union[FunctionFailed, _Mapping]] = ...) -> None: ...

class ExecutionStarted(_message.Message):
    __slots__ = ()
    def __init__(self) -> None: ...

class ExecutionCompleted(_message.Message):
    __slots__ = ()
    def __init__(self) -> None: ...

class ExecutionFailed(_message.Message):
    __slots__ = ("error",)
    ERROR_FIELD_NUMBER: _ClassVar[int]
    error: str
    def __init__(self, error: _Optional[str] = ...) -> None: ...

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

class FunctionStarted(_message.Message):
    __slots__ = ("call_id", "parent_call_id", "invocation")
    CALL_ID_FIELD_NUMBER: _ClassVar[int]
    PARENT_CALL_ID_FIELD_NUMBER: _ClassVar[int]
    INVOCATION_FIELD_NUMBER: _ClassVar[int]
    call_id: str
    parent_call_id: str
    invocation: _script_summary_step_pb2.ScriptFunctionInvocation
    def __init__(self, call_id: _Optional[str] = ..., parent_call_id: _Optional[str] = ..., invocation: _Optional[_Union[_script_summary_step_pb2.ScriptFunctionInvocation, _Mapping]] = ...) -> None: ...

class FunctionCompleted(_message.Message):
    __slots__ = ("call_id", "result")
    CALL_ID_FIELD_NUMBER: _ClassVar[int]
    RESULT_FIELD_NUMBER: _ClassVar[int]
    call_id: str
    result: _ares_struct_pb2.AresValue
    def __init__(self, call_id: _Optional[str] = ..., result: _Optional[_Union[_ares_struct_pb2.AresValue, _Mapping]] = ...) -> None: ...

class FunctionFailed(_message.Message):
    __slots__ = ("call_id", "error")
    CALL_ID_FIELD_NUMBER: _ClassVar[int]
    ERROR_FIELD_NUMBER: _ClassVar[int]
    call_id: str
    error: str
    def __init__(self, call_id: _Optional[str] = ..., error: _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 ScriptSummaryRequest(_message.Message):
    __slots__ = ("script", "include_user_functions", "include_lambdas")
    SCRIPT_FIELD_NUMBER: _ClassVar[int]
    INCLUDE_USER_FUNCTIONS_FIELD_NUMBER: _ClassVar[int]
    INCLUDE_LAMBDAS_FIELD_NUMBER: _ClassVar[int]
    script: str
    include_user_functions: bool
    include_lambdas: bool
    def __init__(self, script: _Optional[str] = ..., include_user_functions: bool = ..., include_lambdas: bool = ...) -> None: ...

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

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

class SymbolMetadataResponse(_message.Message):
    __slots__ = ("found", "metadata", "diagnostics")
    FOUND_FIELD_NUMBER: _ClassVar[int]
    METADATA_FIELD_NUMBER: _ClassVar[int]
    DIAGNOSTICS_FIELD_NUMBER: _ClassVar[int]
    found: bool
    metadata: _script_symbol_metadata_pb2.ScriptSymbolMetadata
    diagnostics: _containers.RepeatedCompositeFieldContainer[_diagnostic_pb2.Diagnostic]
    def __init__(self, found: bool = ..., metadata: _Optional[_Union[_script_symbol_metadata_pb2.ScriptSymbolMetadata, _Mapping]] = ..., diagnostics: _Optional[_Iterable[_Union[_diagnostic_pb2.Diagnostic, _Mapping]]] = ...) -> None: ...

class ReferencesRequest(_message.Message):
    __slots__ = ("script", "cursor_line", "cursor_column", "identifier", "include_definition")
    SCRIPT_FIELD_NUMBER: _ClassVar[int]
    CURSOR_LINE_FIELD_NUMBER: _ClassVar[int]
    CURSOR_COLUMN_FIELD_NUMBER: _ClassVar[int]
    IDENTIFIER_FIELD_NUMBER: _ClassVar[int]
    INCLUDE_DEFINITION_FIELD_NUMBER: _ClassVar[int]
    script: str
    cursor_line: int
    cursor_column: int
    identifier: str
    include_definition: bool
    def __init__(self, script: _Optional[str] = ..., cursor_line: _Optional[int] = ..., cursor_column: _Optional[int] = ..., identifier: _Optional[str] = ..., include_definition: bool = ...) -> None: ...

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

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

class SignatureHelpResponse(_message.Message):
    __slots__ = ("signature_help", "diagnostics")
    SIGNATURE_HELP_FIELD_NUMBER: _ClassVar[int]
    DIAGNOSTICS_FIELD_NUMBER: _ClassVar[int]
    signature_help: _signature_help_pb2.SignatureHelp
    diagnostics: _containers.RepeatedCompositeFieldContainer[_diagnostic_pb2.Diagnostic]
    def __init__(self, signature_help: _Optional[_Union[_signature_help_pb2.SignatureHelp, _Mapping]] = ..., diagnostics: _Optional[_Iterable[_Union[_diagnostic_pb2.Diagnostic, _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: ...
