"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import avikom.assistance.assistance_level_pb2
import avikom.generic.modality_pb2
import avikom.unity.transpose_pb2
import builtins
import google.protobuf.descriptor
import google.protobuf.message
import sys

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class InstructionMeta(google.protobuf.message.Message):
    """*
    This message describes the common base for an instruction.
    Every instruction has an assistance level and can be modaly modulated
    They should all be compatible with the 'Basic Action Concept' (BAC) of SDA-M.
    @author: Lars Schalkwijk <lars.schalkwijk@fh-bielefeld.de>
    @author: Alexander Neumann <alneuman@techfak.uni-bielefeld.de>
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ASSISTANCE_LEVEL_FIELD_NUMBER: builtins.int
    MODAL_BIAS_FIELD_NUMBER: builtins.int
    LOCATION_FIELD_NUMBER: builtins.int
    TRANSPOSE_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    assistance_level: avikom.assistance.assistance_level_pb2.AssistanceLevel.ValueType
    """/ the targeted assistance level, this instruction wont be available for users with less assistance requirements"""
    @property
    def modal_bias(self) -> avikom.generic.modality_pb2.Modality:
        """/ whether an instruction should be preferably presented in a certain modality and whether a modality in generally unsuited for that introduction."""
    location: builtins.str
    """/ name of the scene/task asset this object should be referenced to;"""
    @property
    def transpose(self) -> avikom.unity.transpose_pb2.Transpose:
        """/ relative offset to the mentioned location"""
    id: builtins.str
    """/ an optional id to reference the instruction later"""
    def __init__(
        self,
        *,
        assistance_level: avikom.assistance.assistance_level_pb2.AssistanceLevel.ValueType = ...,
        modal_bias: avikom.generic.modality_pb2.Modality | None = ...,
        location: builtins.str = ...,
        transpose: avikom.unity.transpose_pb2.Transpose | None = ...,
        id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["modal_bias", b"modal_bias", "transpose", b"transpose"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["assistance_level", b"assistance_level", "id", b"id", "location", b"location", "modal_bias", b"modal_bias", "transpose", b"transpose"]) -> None: ...

global___InstructionMeta = InstructionMeta
