"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import typing
import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class RuleID(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    id: builtins.int
    def __init__(self,
        *,
        id: builtins.int = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["id",b"id"]) -> None: ...
global___RuleID = RuleID

class MessageFlow(google.protobuf.message.Message):
    """
    Message flow used to filter income and outcome messages to related rules.
    To configure this param please setup it on rule creation phase.
    Related rules sends and receives messages only from pins with same value in attributes.
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    FLOW_FIELD_NUMBER: builtins.int
    flow: typing.Text
    def __init__(self,
        *,
        flow: typing.Text = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["flow",b"flow"]) -> None: ...
global___MessageFlow = MessageFlow

class RuleInfo(google.protobuf.message.Message):
    """
    id: RuleID - id of rule generated by simulator side
    class_name: String - name of rule's class
    alias: String - attribute used to filter messages to specific rules
    messageFlow: RuleMessageFlow - attribute used to filter messages to specific rules
    """
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    ID_FIELD_NUMBER: builtins.int
    CLASS_NAME_FIELD_NUMBER: builtins.int
    ALIAS_FIELD_NUMBER: builtins.int
    MESSAGEFLOW_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> global___RuleID: ...
    class_name: typing.Text
    alias: typing.Text
    @property
    def messageFlow(self) -> global___MessageFlow: ...
    def __init__(self,
        *,
        id: typing.Optional[global___RuleID] = ...,
        class_name: typing.Text = ...,
        alias: typing.Text = ...,
        messageFlow: typing.Optional[global___MessageFlow] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["id",b"id","messageFlow",b"messageFlow"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["alias",b"alias","class_name",b"class_name","id",b"id","messageFlow",b"messageFlow"]) -> None: ...
global___RuleInfo = RuleInfo

class RulesInfo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    INFO_FIELD_NUMBER: builtins.int
    @property
    def info(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RuleInfo]: ...
    def __init__(self,
        *,
        info: typing.Optional[typing.Iterable[global___RuleInfo]] = ...,
        ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["info",b"info"]) -> None: ...
global___RulesInfo = RulesInfo

class TouchRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor
    class ArgsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor
        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: typing.Text
        value: typing.Text
        def __init__(self,
            *,
            key: typing.Text = ...,
            value: typing.Text = ...,
            ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key",b"key","value",b"value"]) -> None: ...

    ID_FIELD_NUMBER: builtins.int
    ARGS_FIELD_NUMBER: builtins.int
    @property
    def id(self) -> global___RuleID: ...
    @property
    def args(self) -> google.protobuf.internal.containers.ScalarMap[typing.Text, typing.Text]: ...
    def __init__(self,
        *,
        id: typing.Optional[global___RuleID] = ...,
        args: typing.Optional[typing.Mapping[typing.Text, typing.Text]] = ...,
        ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["id",b"id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["args",b"args","id",b"id"]) -> None: ...
global___TouchRequest = TouchRequest
