from cmvr.api import common_pb2 as _common_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
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 FreedomValue(_message.Message):
    __slots__ = ("id", "value")
    ID_FIELD_NUMBER: _ClassVar[int]
    VALUE_FIELD_NUMBER: _ClassVar[int]
    id: int
    value: float
    def __init__(self, id: _Optional[int] = ..., value: _Optional[float] = ...) -> None: ...

class FreedomState(_message.Message):
    __slots__ = ("dof_id", "angle", "speed", "force", "position", "current", "temperature", "error", "error_message")
    DOF_ID_FIELD_NUMBER: _ClassVar[int]
    ANGLE_FIELD_NUMBER: _ClassVar[int]
    SPEED_FIELD_NUMBER: _ClassVar[int]
    FORCE_FIELD_NUMBER: _ClassVar[int]
    POSITION_FIELD_NUMBER: _ClassVar[int]
    CURRENT_FIELD_NUMBER: _ClassVar[int]
    TEMPERATURE_FIELD_NUMBER: _ClassVar[int]
    ERROR_FIELD_NUMBER: _ClassVar[int]
    ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int]
    dof_id: int
    angle: int
    speed: int
    force: int
    position: int
    current: int
    temperature: int
    error: int
    error_message: _containers.RepeatedScalarFieldContainer[str]
    def __init__(self, dof_id: _Optional[int] = ..., angle: _Optional[int] = ..., speed: _Optional[int] = ..., force: _Optional[int] = ..., position: _Optional[int] = ..., current: _Optional[int] = ..., temperature: _Optional[int] = ..., error: _Optional[int] = ..., error_message: _Optional[_Iterable[str]] = ...) -> None: ...

class SensorData(_message.Message):
    __slots__ = ("finger_type", "part_type", "sensor_name", "data", "rows", "cols")
    class FingerType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
        __slots__ = ()
        PINKY: _ClassVar[SensorData.FingerType]
        RING: _ClassVar[SensorData.FingerType]
        MIDDLE_FINGER: _ClassVar[SensorData.FingerType]
        INDEX: _ClassVar[SensorData.FingerType]
        THUMB: _ClassVar[SensorData.FingerType]
        PALM: _ClassVar[SensorData.FingerType]
    PINKY: SensorData.FingerType
    RING: SensorData.FingerType
    MIDDLE_FINGER: SensorData.FingerType
    INDEX: SensorData.FingerType
    THUMB: SensorData.FingerType
    PALM: SensorData.FingerType
    class PartType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
        __slots__ = ()
        TIP: _ClassVar[SensorData.PartType]
        FINGER: _ClassVar[SensorData.PartType]
        PAD: _ClassVar[SensorData.PartType]
        THUMB_MIDDLE: _ClassVar[SensorData.PartType]
        PALM_PAD: _ClassVar[SensorData.PartType]
    TIP: SensorData.PartType
    FINGER: SensorData.PartType
    PAD: SensorData.PartType
    THUMB_MIDDLE: SensorData.PartType
    PALM_PAD: SensorData.PartType
    class RowData(_message.Message):
        __slots__ = ("values",)
        VALUES_FIELD_NUMBER: _ClassVar[int]
        values: _containers.RepeatedScalarFieldContainer[int]
        def __init__(self, values: _Optional[_Iterable[int]] = ...) -> None: ...
    FINGER_TYPE_FIELD_NUMBER: _ClassVar[int]
    PART_TYPE_FIELD_NUMBER: _ClassVar[int]
    SENSOR_NAME_FIELD_NUMBER: _ClassVar[int]
    DATA_FIELD_NUMBER: _ClassVar[int]
    ROWS_FIELD_NUMBER: _ClassVar[int]
    COLS_FIELD_NUMBER: _ClassVar[int]
    finger_type: SensorData.FingerType
    part_type: SensorData.PartType
    sensor_name: str
    data: _containers.RepeatedCompositeFieldContainer[SensorData.RowData]
    rows: int
    cols: int
    def __init__(self, finger_type: _Optional[_Union[SensorData.FingerType, str]] = ..., part_type: _Optional[_Union[SensorData.PartType, str]] = ..., sensor_name: _Optional[str] = ..., data: _Optional[_Iterable[_Union[SensorData.RowData, _Mapping]]] = ..., rows: _Optional[int] = ..., cols: _Optional[int] = ...) -> None: ...

class DexHandState(_message.Message):
    __slots__ = ("is_initialized", "hands")
    IS_INITIALIZED_FIELD_NUMBER: _ClassVar[int]
    HANDS_FIELD_NUMBER: _ClassVar[int]
    is_initialized: bool
    hands: _containers.RepeatedCompositeFieldContainer[FreedomState]
    def __init__(self, is_initialized: _Optional[bool] = ..., hands: _Optional[_Iterable[_Union[FreedomState, _Mapping]]] = ...) -> None: ...

class GetDexHandStateCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Request
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Request, _Mapping]] = ...) -> None: ...
    class Feedback(_message.Message):
        __slots__ = ("header", "state")
        HEADER_FIELD_NUMBER: _ClassVar[int]
        STATE_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Feedback
        state: DexHandState
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Feedback, _Mapping]] = ..., state: _Optional[_Union[DexHandState, _Mapping]] = ...) -> None: ...
    def __init__(self) -> None: ...

class SetDexHandPositionsCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ("header", "values")
        HEADER_FIELD_NUMBER: _ClassVar[int]
        VALUES_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Request
        values: _containers.RepeatedCompositeFieldContainer[FreedomValue]
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Request, _Mapping]] = ..., values: _Optional[_Iterable[_Union[FreedomValue, _Mapping]]] = ...) -> None: ...
    class Feedback(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Feedback
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Feedback, _Mapping]] = ...) -> None: ...
    def __init__(self) -> None: ...

class SetDexHandAnglesCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ("header", "values")
        HEADER_FIELD_NUMBER: _ClassVar[int]
        VALUES_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Request
        values: _containers.RepeatedCompositeFieldContainer[FreedomValue]
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Request, _Mapping]] = ..., values: _Optional[_Iterable[_Union[FreedomValue, _Mapping]]] = ...) -> None: ...
    class Feedback(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Feedback
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Feedback, _Mapping]] = ...) -> None: ...
    def __init__(self) -> None: ...

class SetDexHandForceCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ("header", "values")
        HEADER_FIELD_NUMBER: _ClassVar[int]
        VALUES_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Request
        values: _containers.RepeatedCompositeFieldContainer[FreedomValue]
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Request, _Mapping]] = ..., values: _Optional[_Iterable[_Union[FreedomValue, _Mapping]]] = ...) -> None: ...
    class Feedback(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Feedback
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Feedback, _Mapping]] = ...) -> None: ...
    def __init__(self) -> None: ...

class SetDexHandSpeedCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ("header", "values")
        HEADER_FIELD_NUMBER: _ClassVar[int]
        VALUES_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Request
        values: _containers.RepeatedCompositeFieldContainer[FreedomValue]
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Request, _Mapping]] = ..., values: _Optional[_Iterable[_Union[FreedomValue, _Mapping]]] = ...) -> None: ...
    class Feedback(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Feedback
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Feedback, _Mapping]] = ...) -> None: ...
    def __init__(self) -> None: ...

class SetDexHandPresetActCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ("header", "presetActId")
        HEADER_FIELD_NUMBER: _ClassVar[int]
        PRESETACTID_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Request
        presetActId: int
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Request, _Mapping]] = ..., presetActId: _Optional[int] = ...) -> None: ...
    class Feedback(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Feedback
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Feedback, _Mapping]] = ...) -> None: ...
    def __init__(self) -> None: ...

class GetSensorDataCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Request
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Request, _Mapping]] = ...) -> None: ...
    class Feedback(_message.Message):
        __slots__ = ("header", "sensor")
        HEADER_FIELD_NUMBER: _ClassVar[int]
        SENSOR_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Feedback
        sensor: _containers.RepeatedCompositeFieldContainer[SensorData]
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Feedback, _Mapping]] = ..., sensor: _Optional[_Iterable[_Union[SensorData, _Mapping]]] = ...) -> None: ...
    def __init__(self) -> None: ...

class GetSensorDataStreamCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ("header",)
        HEADER_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Request
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Request, _Mapping]] = ...) -> None: ...
    class Feedback(_message.Message):
        __slots__ = ("header", "sensor")
        HEADER_FIELD_NUMBER: _ClassVar[int]
        SENSOR_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Feedback
        sensor: _containers.RepeatedCompositeFieldContainer[SensorData]
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Feedback, _Mapping]] = ..., sensor: _Optional[_Iterable[_Union[SensorData, _Mapping]]] = ...) -> None: ...
    def __init__(self) -> None: ...
