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 DeviceType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    AGV: _ClassVar[DeviceType]
    Battery: _ClassVar[DeviceType]
    Camera: _ClassVar[DeviceType]
    DexHand: _ClassVar[DeviceType]
    Gripper: _ClassVar[DeviceType]
    Microphone: _ClassVar[DeviceType]
    Robot: _ClassVar[DeviceType]
    Speaker: _ClassVar[DeviceType]
    Unknown: _ClassVar[DeviceType]
AGV: DeviceType
Battery: DeviceType
Camera: DeviceType
DexHand: DeviceType
Gripper: DeviceType
Microphone: DeviceType
Robot: DeviceType
Speaker: DeviceType
Unknown: DeviceType

class DeviceList(_message.Message):
    __slots__ = ("device_id", "device_type")
    DEVICE_ID_FIELD_NUMBER: _ClassVar[int]
    DEVICE_TYPE_FIELD_NUMBER: _ClassVar[int]
    device_id: str
    device_type: DeviceType
    def __init__(self, device_id: _Optional[str] = ..., device_type: _Optional[_Union[DeviceType, str]] = ...) -> None: ...

class GetSystemInfoCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ()
        def __init__(self) -> None: ...
    class Feedback(_message.Message):
        __slots__ = ("header", "system_name", "version", "description", "os", "kernel_version", "architecture")
        HEADER_FIELD_NUMBER: _ClassVar[int]
        SYSTEM_NAME_FIELD_NUMBER: _ClassVar[int]
        VERSION_FIELD_NUMBER: _ClassVar[int]
        DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
        OS_FIELD_NUMBER: _ClassVar[int]
        KERNEL_VERSION_FIELD_NUMBER: _ClassVar[int]
        ARCHITECTURE_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Feedback
        system_name: str
        version: str
        description: str
        os: str
        kernel_version: str
        architecture: str
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Feedback, _Mapping]] = ..., system_name: _Optional[str] = ..., version: _Optional[str] = ..., description: _Optional[str] = ..., os: _Optional[str] = ..., kernel_version: _Optional[str] = ..., architecture: _Optional[str] = ...) -> None: ...
    def __init__(self) -> None: ...

class GetSystemStatusCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ()
        def __init__(self) -> None: ...
    class Feedback(_message.Message):
        __slots__ = ("header", "cpu_usage", "mem_total_mb", "mem_used_mb", "disk_total_gb", "disk_used_gb", "device_list")
        HEADER_FIELD_NUMBER: _ClassVar[int]
        CPU_USAGE_FIELD_NUMBER: _ClassVar[int]
        MEM_TOTAL_MB_FIELD_NUMBER: _ClassVar[int]
        MEM_USED_MB_FIELD_NUMBER: _ClassVar[int]
        DISK_TOTAL_GB_FIELD_NUMBER: _ClassVar[int]
        DISK_USED_GB_FIELD_NUMBER: _ClassVar[int]
        DEVICE_LIST_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Feedback
        cpu_usage: float
        mem_total_mb: float
        mem_used_mb: float
        disk_total_gb: float
        disk_used_gb: float
        device_list: _containers.RepeatedCompositeFieldContainer[DeviceList]
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Feedback, _Mapping]] = ..., cpu_usage: _Optional[float] = ..., mem_total_mb: _Optional[float] = ..., mem_used_mb: _Optional[float] = ..., disk_total_gb: _Optional[float] = ..., disk_used_gb: _Optional[float] = ..., device_list: _Optional[_Iterable[_Union[DeviceList, _Mapping]]] = ...) -> None: ...
    def __init__(self) -> None: ...

class UpdateParamsCommand(_message.Message):
    __slots__ = ()
    class Request(_message.Message):
        __slots__ = ("header", "params")
        HEADER_FIELD_NUMBER: _ClassVar[int]
        PARAMS_FIELD_NUMBER: _ClassVar[int]
        header: _common_pb2.CommandHeader.Request
        params: _containers.RepeatedCompositeFieldContainer[_common_pb2.ConfigParam]
        def __init__(self, header: _Optional[_Union[_common_pb2.CommandHeader.Request, _Mapping]] = ..., params: _Optional[_Iterable[_Union[_common_pb2.ConfigParam, _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 StopAllCommand(_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",)
        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: ...
