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

DESCRIPTOR: _descriptor.FileDescriptor

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

class ConfigurationStatistics(_message.Message):
    __slots__ = ("total_nodes", "boolean_count", "integer_count", "string_count", "property_count", "marker_count", "rules_section_count")
    TOTAL_NODES_FIELD_NUMBER: _ClassVar[int]
    BOOLEAN_COUNT_FIELD_NUMBER: _ClassVar[int]
    INTEGER_COUNT_FIELD_NUMBER: _ClassVar[int]
    STRING_COUNT_FIELD_NUMBER: _ClassVar[int]
    PROPERTY_COUNT_FIELD_NUMBER: _ClassVar[int]
    MARKER_COUNT_FIELD_NUMBER: _ClassVar[int]
    RULES_SECTION_COUNT_FIELD_NUMBER: _ClassVar[int]
    total_nodes: int
    boolean_count: int
    integer_count: int
    string_count: int
    property_count: int
    marker_count: int
    rules_section_count: int
    def __init__(self, total_nodes: _Optional[int] = ..., boolean_count: _Optional[int] = ..., integer_count: _Optional[int] = ..., string_count: _Optional[int] = ..., property_count: _Optional[int] = ..., marker_count: _Optional[int] = ..., rules_section_count: _Optional[int] = ...) -> None: ...

class ConfigNode(_message.Message):
    __slots__ = ("start_offset", "end_offset", "node_type", "name", "value", "value_type")
    START_OFFSET_FIELD_NUMBER: _ClassVar[int]
    END_OFFSET_FIELD_NUMBER: _ClassVar[int]
    NODE_TYPE_FIELD_NUMBER: _ClassVar[int]
    NAME_FIELD_NUMBER: _ClassVar[int]
    VALUE_FIELD_NUMBER: _ClassVar[int]
    VALUE_TYPE_FIELD_NUMBER: _ClassVar[int]
    start_offset: int
    end_offset: int
    node_type: str
    name: str
    value: str
    value_type: str
    def __init__(self, start_offset: _Optional[int] = ..., end_offset: _Optional[int] = ..., node_type: _Optional[str] = ..., name: _Optional[str] = ..., value: _Optional[str] = ..., value_type: _Optional[str] = ...) -> None: ...

class ConfigurationResponse(_message.Message):
    __slots__ = ("success", "error_message", "file_size", "header", "nodes", "statistics")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    FILE_SIZE_FIELD_NUMBER: _ClassVar[int]
    HEADER_FIELD_NUMBER: _ClassVar[int]
    NODES_FIELD_NUMBER: _ClassVar[int]
    STATISTICS_FIELD_NUMBER: _ClassVar[int]
    success: bool
    error_message: str
    file_size: int
    header: str
    nodes: _containers.RepeatedCompositeFieldContainer[ConfigNode]
    statistics: ConfigurationStatistics
    def __init__(self, success: bool = ..., error_message: _Optional[str] = ..., file_size: _Optional[int] = ..., header: _Optional[str] = ..., nodes: _Optional[_Iterable[_Union[ConfigNode, _Mapping]]] = ..., statistics: _Optional[_Union[ConfigurationStatistics, _Mapping]] = ...) -> None: ...

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

class JsonExportResponse(_message.Message):
    __slots__ = ("success", "error_message", "json_data", "json_size")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    JSON_DATA_FIELD_NUMBER: _ClassVar[int]
    JSON_SIZE_FIELD_NUMBER: _ClassVar[int]
    success: bool
    error_message: str
    json_data: str
    json_size: int
    def __init__(self, success: bool = ..., error_message: _Optional[str] = ..., json_data: _Optional[str] = ..., json_size: _Optional[int] = ...) -> None: ...

class NodeModification(_message.Message):
    __slots__ = ("start_offset", "node_type", "new_value")
    START_OFFSET_FIELD_NUMBER: _ClassVar[int]
    NODE_TYPE_FIELD_NUMBER: _ClassVar[int]
    NEW_VALUE_FIELD_NUMBER: _ClassVar[int]
    start_offset: int
    node_type: str
    new_value: str
    def __init__(self, start_offset: _Optional[int] = ..., node_type: _Optional[str] = ..., new_value: _Optional[str] = ...) -> None: ...

class ModifyConfigurationRequest(_message.Message):
    __slots__ = ("modifications",)
    MODIFICATIONS_FIELD_NUMBER: _ClassVar[int]
    modifications: _containers.RepeatedCompositeFieldContainer[NodeModification]
    def __init__(self, modifications: _Optional[_Iterable[_Union[NodeModification, _Mapping]]] = ...) -> None: ...

class ModifyConfigurationResponse(_message.Message):
    __slots__ = ("success", "error_message", "modifications_applied")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    MODIFICATIONS_APPLIED_FIELD_NUMBER: _ClassVar[int]
    success: bool
    error_message: str
    modifications_applied: int
    def __init__(self, success: bool = ..., error_message: _Optional[str] = ..., modifications_applied: _Optional[int] = ...) -> None: ...

class ImportConfigurationRequest(_message.Message):
    __slots__ = ("json_data",)
    JSON_DATA_FIELD_NUMBER: _ClassVar[int]
    json_data: str
    def __init__(self, json_data: _Optional[str] = ...) -> None: ...

class ImportConfigurationResponse(_message.Message):
    __slots__ = ("success", "error_message", "bytes_written", "nodes_imported")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    BYTES_WRITTEN_FIELD_NUMBER: _ClassVar[int]
    NODES_IMPORTED_FIELD_NUMBER: _ClassVar[int]
    success: bool
    error_message: str
    bytes_written: int
    nodes_imported: int
    def __init__(self, success: bool = ..., error_message: _Optional[str] = ..., bytes_written: _Optional[int] = ..., nodes_imported: _Optional[int] = ...) -> None: ...

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

class ActionParameter(_message.Message):
    __slots__ = ("name", "value")
    NAME_FIELD_NUMBER: _ClassVar[int]
    VALUE_FIELD_NUMBER: _ClassVar[int]
    name: str
    value: str
    def __init__(self, name: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...

class ActionDefinition(_message.Message):
    __slots__ = ("action", "parameters")
    ACTION_FIELD_NUMBER: _ClassVar[int]
    PARAMETERS_FIELD_NUMBER: _ClassVar[int]
    action: str
    parameters: _containers.RepeatedCompositeFieldContainer[ActionParameter]
    def __init__(self, action: _Optional[str] = ..., parameters: _Optional[_Iterable[_Union[ActionParameter, _Mapping]]] = ...) -> None: ...

class ConfigActionMapping(_message.Message):
    __slots__ = ("name", "input_actions", "output_actions", "start_offset", "end_offset", "actions")
    NAME_FIELD_NUMBER: _ClassVar[int]
    INPUT_ACTIONS_FIELD_NUMBER: _ClassVar[int]
    OUTPUT_ACTIONS_FIELD_NUMBER: _ClassVar[int]
    START_OFFSET_FIELD_NUMBER: _ClassVar[int]
    END_OFFSET_FIELD_NUMBER: _ClassVar[int]
    ACTIONS_FIELD_NUMBER: _ClassVar[int]
    name: str
    input_actions: _containers.RepeatedCompositeFieldContainer[ActionDefinition]
    output_actions: _containers.RepeatedCompositeFieldContainer[ActionDefinition]
    start_offset: int
    end_offset: int
    actions: _containers.RepeatedScalarFieldContainer[str]
    def __init__(self, name: _Optional[str] = ..., input_actions: _Optional[_Iterable[_Union[ActionDefinition, _Mapping]]] = ..., output_actions: _Optional[_Iterable[_Union[ActionDefinition, _Mapping]]] = ..., start_offset: _Optional[int] = ..., end_offset: _Optional[int] = ..., actions: _Optional[_Iterable[str]] = ...) -> None: ...

class ActionMappingsResponse(_message.Message):
    __slots__ = ("success", "error_message", "mappings", "total_count")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    MAPPINGS_FIELD_NUMBER: _ClassVar[int]
    TOTAL_COUNT_FIELD_NUMBER: _ClassVar[int]
    success: bool
    error_message: str
    mappings: _containers.RepeatedCompositeFieldContainer[ConfigActionMapping]
    total_count: int
    def __init__(self, success: bool = ..., error_message: _Optional[str] = ..., mappings: _Optional[_Iterable[_Union[ConfigActionMapping, _Mapping]]] = ..., total_count: _Optional[int] = ...) -> None: ...

class ReadSpecificMarkersRequest(_message.Message):
    __slots__ = ("marker_names",)
    MARKER_NAMES_FIELD_NUMBER: _ClassVar[int]
    marker_names: _containers.RepeatedScalarFieldContainer[str]
    def __init__(self, marker_names: _Optional[_Iterable[str]] = ...) -> None: ...

class SelectiveConfigResponse(_message.Message):
    __slots__ = ("success", "error_message", "file_size", "requested_markers", "extracted_nodes", "markers_found")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    FILE_SIZE_FIELD_NUMBER: _ClassVar[int]
    REQUESTED_MARKERS_FIELD_NUMBER: _ClassVar[int]
    EXTRACTED_NODES_FIELD_NUMBER: _ClassVar[int]
    MARKERS_FOUND_FIELD_NUMBER: _ClassVar[int]
    success: bool
    error_message: str
    file_size: int
    requested_markers: _containers.RepeatedScalarFieldContainer[str]
    extracted_nodes: _containers.RepeatedCompositeFieldContainer[ConfigNode]
    markers_found: int
    def __init__(self, success: bool = ..., error_message: _Optional[str] = ..., file_size: _Optional[int] = ..., requested_markers: _Optional[_Iterable[str]] = ..., extracted_nodes: _Optional[_Iterable[_Union[ConfigNode, _Mapping]]] = ..., markers_found: _Optional[int] = ...) -> None: ...

class ActionMappingInput(_message.Message):
    __slots__ = ("name", "input_actions", "output_actions", "video_input")
    NAME_FIELD_NUMBER: _ClassVar[int]
    INPUT_ACTIONS_FIELD_NUMBER: _ClassVar[int]
    OUTPUT_ACTIONS_FIELD_NUMBER: _ClassVar[int]
    VIDEO_INPUT_FIELD_NUMBER: _ClassVar[int]
    name: str
    input_actions: _containers.RepeatedCompositeFieldContainer[ActionDefinition]
    output_actions: _containers.RepeatedCompositeFieldContainer[ActionDefinition]
    video_input: int
    def __init__(self, name: _Optional[str] = ..., input_actions: _Optional[_Iterable[_Union[ActionDefinition, _Mapping]]] = ..., output_actions: _Optional[_Iterable[_Union[ActionDefinition, _Mapping]]] = ..., video_input: _Optional[int] = ...) -> None: ...

class CreateActionMappingRequest(_message.Message):
    __slots__ = ("mapping",)
    MAPPING_FIELD_NUMBER: _ClassVar[int]
    mapping: ActionMappingInput
    def __init__(self, mapping: _Optional[_Union[ActionMappingInput, _Mapping]] = ...) -> None: ...

class UpdateActionMappingRequest(_message.Message):
    __slots__ = ("mapping_id", "mapping")
    MAPPING_ID_FIELD_NUMBER: _ClassVar[int]
    MAPPING_FIELD_NUMBER: _ClassVar[int]
    mapping_id: int
    mapping: ActionMappingInput
    def __init__(self, mapping_id: _Optional[int] = ..., mapping: _Optional[_Union[ActionMappingInput, _Mapping]] = ...) -> None: ...

class DeleteActionMappingRequest(_message.Message):
    __slots__ = ("mapping_id",)
    MAPPING_ID_FIELD_NUMBER: _ClassVar[int]
    mapping_id: int
    def __init__(self, mapping_id: _Optional[int] = ...) -> None: ...

class ActionMappingOperationResponse(_message.Message):
    __slots__ = ("success", "error_message", "mapping", "message")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    MAPPING_FIELD_NUMBER: _ClassVar[int]
    MESSAGE_FIELD_NUMBER: _ClassVar[int]
    success: bool
    error_message: str
    mapping: ConfigActionMapping
    message: str
    def __init__(self, success: bool = ..., error_message: _Optional[str] = ..., mapping: _Optional[_Union[ConfigActionMapping, _Mapping]] = ..., message: _Optional[str] = ...) -> None: ...

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

class RegistryNodesResponse(_message.Message):
    __slots__ = ("success", "node_paths", "error_message")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    NODE_PATHS_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    success: bool
    node_paths: _containers.RepeatedScalarFieldContainer[str]
    error_message: str
    def __init__(self, success: bool = ..., node_paths: _Optional[_Iterable[str]] = ..., error_message: _Optional[str] = ...) -> None: ...

class GetRegistryNodeDetailsRequest(_message.Message):
    __slots__ = ("node_path",)
    NODE_PATH_FIELD_NUMBER: _ClassVar[int]
    node_path: str
    def __init__(self, node_path: _Optional[str] = ...) -> None: ...

class RegistryNodeDetailsResponse(_message.Message):
    __slots__ = ("success", "details", "error_message")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    DETAILS_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    success: bool
    details: str
    error_message: str
    def __init__(self, success: bool = ..., details: _Optional[str] = ..., error_message: _Optional[str] = ...) -> None: ...

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

class ActionMappingPathsResponse(_message.Message):
    __slots__ = ("success", "paths", "error_message")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    PATHS_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    success: bool
    paths: _containers.RepeatedScalarFieldContainer[str]
    error_message: str
    def __init__(self, success: bool = ..., paths: _Optional[_Iterable[str]] = ..., error_message: _Optional[str] = ...) -> None: ...

class ServerData(_message.Message):
    __slots__ = ("id", "alias", "host", "user", "password", "enabled", "deactivate_echo", "deactivate_live_check")
    ID_FIELD_NUMBER: _ClassVar[int]
    ALIAS_FIELD_NUMBER: _ClassVar[int]
    HOST_FIELD_NUMBER: _ClassVar[int]
    USER_FIELD_NUMBER: _ClassVar[int]
    PASSWORD_FIELD_NUMBER: _ClassVar[int]
    ENABLED_FIELD_NUMBER: _ClassVar[int]
    DEACTIVATE_ECHO_FIELD_NUMBER: _ClassVar[int]
    DEACTIVATE_LIVE_CHECK_FIELD_NUMBER: _ClassVar[int]
    id: str
    alias: str
    host: str
    user: str
    password: str
    enabled: bool
    deactivate_echo: bool
    deactivate_live_check: bool
    def __init__(self, id: _Optional[str] = ..., alias: _Optional[str] = ..., host: _Optional[str] = ..., user: _Optional[str] = ..., password: _Optional[str] = ..., enabled: bool = ..., deactivate_echo: bool = ..., deactivate_live_check: bool = ...) -> None: ...

class CreateServerRequest(_message.Message):
    __slots__ = ("server",)
    SERVER_FIELD_NUMBER: _ClassVar[int]
    server: ServerData
    def __init__(self, server: _Optional[_Union[ServerData, _Mapping]] = ...) -> None: ...

class UpdateServerRequest(_message.Message):
    __slots__ = ("server_id", "server")
    SERVER_ID_FIELD_NUMBER: _ClassVar[int]
    SERVER_FIELD_NUMBER: _ClassVar[int]
    server_id: str
    server: ServerData
    def __init__(self, server_id: _Optional[str] = ..., server: _Optional[_Union[ServerData, _Mapping]] = ...) -> None: ...

class DeleteServerRequest(_message.Message):
    __slots__ = ("server_id",)
    SERVER_ID_FIELD_NUMBER: _ClassVar[int]
    server_id: str
    def __init__(self, server_id: _Optional[str] = ...) -> None: ...

class ServerOperationResponse(_message.Message):
    __slots__ = ("success", "error_message", "server", "message", "bytes_written")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    SERVER_FIELD_NUMBER: _ClassVar[int]
    MESSAGE_FIELD_NUMBER: _ClassVar[int]
    BYTES_WRITTEN_FIELD_NUMBER: _ClassVar[int]
    success: bool
    error_message: str
    server: ServerData
    message: str
    bytes_written: int
    def __init__(self, success: bool = ..., error_message: _Optional[str] = ..., server: _Optional[_Union[ServerData, _Mapping]] = ..., message: _Optional[str] = ..., bytes_written: _Optional[int] = ...) -> None: ...

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

class TreeNode(_message.Message):
    __slots__ = ("type", "name", "int_value", "string_value", "children")
    TYPE_FIELD_NUMBER: _ClassVar[int]
    NAME_FIELD_NUMBER: _ClassVar[int]
    INT_VALUE_FIELD_NUMBER: _ClassVar[int]
    STRING_VALUE_FIELD_NUMBER: _ClassVar[int]
    CHILDREN_FIELD_NUMBER: _ClassVar[int]
    type: str
    name: str
    int_value: int
    string_value: str
    children: _containers.RepeatedCompositeFieldContainer[TreeNode]
    def __init__(self, type: _Optional[str] = ..., name: _Optional[str] = ..., int_value: _Optional[int] = ..., string_value: _Optional[str] = ..., children: _Optional[_Iterable[_Union[TreeNode, _Mapping]]] = ...) -> None: ...

class ConfigurationTreeResponse(_message.Message):
    __slots__ = ("success", "error_message", "root", "total_nodes")
    SUCCESS_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    ROOT_FIELD_NUMBER: _ClassVar[int]
    TOTAL_NODES_FIELD_NUMBER: _ClassVar[int]
    success: bool
    error_message: str
    root: TreeNode
    total_nodes: int
    def __init__(self, success: bool = ..., error_message: _Optional[str] = ..., root: _Optional[_Union[TreeNode, _Mapping]] = ..., total_nodes: _Optional[int] = ...) -> None: ...
