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 DeviceConfigEntry(_message.Message):
    __slots__ = ("id", "type", "config_file", "enable")
    class DeviceType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
        __slots__ = ()
        DEVICE_TYPE_UNKNOWN: _ClassVar[DeviceConfigEntry.DeviceType]
        DEVICE_TYPE_BIO_HEAD_ROBOT: _ClassVar[DeviceConfigEntry.DeviceType]
        DEVICE_TYPE_MOTOR_SYSTEM: _ClassVar[DeviceConfigEntry.DeviceType]
        DEVICE_TYPE_ROBOT_ARM: _ClassVar[DeviceConfigEntry.DeviceType]
        DEVICE_TYPE_CAMERA: _ClassVar[DeviceConfigEntry.DeviceType]
        DEVICE_TYPE_DEXHAND: _ClassVar[DeviceConfigEntry.DeviceType]
        DEVICE_TYPE_MICROPHONE: _ClassVar[DeviceConfigEntry.DeviceType]
        DEVICE_TYPE_SPEAKER: _ClassVar[DeviceConfigEntry.DeviceType]
        DEVICE_TYPE_AGV: _ClassVar[DeviceConfigEntry.DeviceType]
    DEVICE_TYPE_UNKNOWN: DeviceConfigEntry.DeviceType
    DEVICE_TYPE_BIO_HEAD_ROBOT: DeviceConfigEntry.DeviceType
    DEVICE_TYPE_MOTOR_SYSTEM: DeviceConfigEntry.DeviceType
    DEVICE_TYPE_ROBOT_ARM: DeviceConfigEntry.DeviceType
    DEVICE_TYPE_CAMERA: DeviceConfigEntry.DeviceType
    DEVICE_TYPE_DEXHAND: DeviceConfigEntry.DeviceType
    DEVICE_TYPE_MICROPHONE: DeviceConfigEntry.DeviceType
    DEVICE_TYPE_SPEAKER: DeviceConfigEntry.DeviceType
    DEVICE_TYPE_AGV: DeviceConfigEntry.DeviceType
    ID_FIELD_NUMBER: _ClassVar[int]
    TYPE_FIELD_NUMBER: _ClassVar[int]
    CONFIG_FILE_FIELD_NUMBER: _ClassVar[int]
    ENABLE_FIELD_NUMBER: _ClassVar[int]
    id: str
    type: DeviceConfigEntry.DeviceType
    config_file: str
    enable: bool
    def __init__(self, id: _Optional[str] = ..., type: _Optional[_Union[DeviceConfigEntry.DeviceType, str]] = ..., config_file: _Optional[str] = ..., enable: _Optional[bool] = ...) -> None: ...

class DeviceManagerConfig(_message.Message):
    __slots__ = ("name", "version", "description", "devices")
    NAME_FIELD_NUMBER: _ClassVar[int]
    VERSION_FIELD_NUMBER: _ClassVar[int]
    DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
    DEVICES_FIELD_NUMBER: _ClassVar[int]
    name: str
    version: str
    description: str
    devices: _containers.RepeatedCompositeFieldContainer[DeviceConfigEntry]
    def __init__(self, name: _Optional[str] = ..., version: _Optional[str] = ..., description: _Optional[str] = ..., devices: _Optional[_Iterable[_Union[DeviceConfigEntry, _Mapping]]] = ...) -> None: ...

class DeviceManagerRootConfig(_message.Message):
    __slots__ = ("device_manager",)
    DEVICE_MANAGER_FIELD_NUMBER: _ClassVar[int]
    device_manager: DeviceManagerConfig
    def __init__(self, device_manager: _Optional[_Union[DeviceManagerConfig, _Mapping]] = ...) -> None: ...
