from google.protobuf.internal import containers as _containers
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 BioHeadServoGroupConfig(_message.Message):
    __slots__ = ("name", "address", "channel_start", "channel_end", "offset", "min_angles", "max_angles")
    NAME_FIELD_NUMBER: _ClassVar[int]
    ADDRESS_FIELD_NUMBER: _ClassVar[int]
    CHANNEL_START_FIELD_NUMBER: _ClassVar[int]
    CHANNEL_END_FIELD_NUMBER: _ClassVar[int]
    OFFSET_FIELD_NUMBER: _ClassVar[int]
    MIN_ANGLES_FIELD_NUMBER: _ClassVar[int]
    MAX_ANGLES_FIELD_NUMBER: _ClassVar[int]
    name: str
    address: int
    channel_start: int
    channel_end: int
    offset: _containers.RepeatedScalarFieldContainer[float]
    min_angles: _containers.RepeatedScalarFieldContainer[float]
    max_angles: _containers.RepeatedScalarFieldContainer[float]
    def __init__(self, name: _Optional[str] = ..., address: _Optional[int] = ..., channel_start: _Optional[int] = ..., channel_end: _Optional[int] = ..., offset: _Optional[_Iterable[float]] = ..., min_angles: _Optional[_Iterable[float]] = ..., max_angles: _Optional[_Iterable[float]] = ...) -> None: ...

class BioHeadRobotConfig(_message.Message):
    __slots__ = ("id", "serial_port", "baud_rate", "servo_groups")
    ID_FIELD_NUMBER: _ClassVar[int]
    SERIAL_PORT_FIELD_NUMBER: _ClassVar[int]
    BAUD_RATE_FIELD_NUMBER: _ClassVar[int]
    SERVO_GROUPS_FIELD_NUMBER: _ClassVar[int]
    id: str
    serial_port: str
    baud_rate: int
    servo_groups: _containers.RepeatedCompositeFieldContainer[BioHeadServoGroupConfig]
    def __init__(self, id: _Optional[str] = ..., serial_port: _Optional[str] = ..., baud_rate: _Optional[int] = ..., servo_groups: _Optional[_Iterable[_Union[BioHeadServoGroupConfig, _Mapping]]] = ...) -> None: ...

class BioHeadRobotRootConfig(_message.Message):
    __slots__ = ("bio_head",)
    BIO_HEAD_FIELD_NUMBER: _ClassVar[int]
    bio_head: BioHeadRobotConfig
    def __init__(self, bio_head: _Optional[_Union[BioHeadRobotConfig, _Mapping]] = ...) -> None: ...
