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 AgvMapDimension(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    AGV_MAP_DIMENSION_UNSPECIFIED: _ClassVar[AgvMapDimension]
    AGV_MAP_2D: _ClassVar[AgvMapDimension]
    AGV_MAP_3D: _ClassVar[AgvMapDimension]
    AGV_MAP_2D_AND_3D: _ClassVar[AgvMapDimension]

class AgvMapUpdateType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    AGV_MAP_UPDATE_UNSPECIFIED: _ClassVar[AgvMapUpdateType]
    AGV_MAP_UPDATE_SNAPSHOT: _ClassVar[AgvMapUpdateType]
    AGV_MAP_UPDATE_INCREMENTAL: _ClassVar[AgvMapUpdateType]
    AGV_MAP_UPDATE_RESET: _ClassVar[AgvMapUpdateType]

class AgvMapObjectType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
    __slots__ = ()
    AGV_MAP_OBJECT_UNSPECIFIED: _ClassVar[AgvMapObjectType]
    AGV_MAP_OBJECT_STATION: _ClassVar[AgvMapObjectType]
    AGV_MAP_OBJECT_LINE: _ClassVar[AgvMapObjectType]
    AGV_MAP_OBJECT_AREA: _ClassVar[AgvMapObjectType]
    AGV_MAP_OBJECT_QR_TAG: _ClassVar[AgvMapObjectType]
    AGV_MAP_OBJECT_REFLECTOR: _ClassVar[AgvMapObjectType]
    AGV_MAP_OBJECT_BIN_LOCATION: _ClassVar[AgvMapObjectType]
    AGV_MAP_OBJECT_EXTERNAL_DEVICE: _ClassVar[AgvMapObjectType]
AGV_MAP_DIMENSION_UNSPECIFIED: AgvMapDimension
AGV_MAP_2D: AgvMapDimension
AGV_MAP_3D: AgvMapDimension
AGV_MAP_2D_AND_3D: AgvMapDimension
AGV_MAP_UPDATE_UNSPECIFIED: AgvMapUpdateType
AGV_MAP_UPDATE_SNAPSHOT: AgvMapUpdateType
AGV_MAP_UPDATE_INCREMENTAL: AgvMapUpdateType
AGV_MAP_UPDATE_RESET: AgvMapUpdateType
AGV_MAP_OBJECT_UNSPECIFIED: AgvMapObjectType
AGV_MAP_OBJECT_STATION: AgvMapObjectType
AGV_MAP_OBJECT_LINE: AgvMapObjectType
AGV_MAP_OBJECT_AREA: AgvMapObjectType
AGV_MAP_OBJECT_QR_TAG: AgvMapObjectType
AGV_MAP_OBJECT_REFLECTOR: AgvMapObjectType
AGV_MAP_OBJECT_BIN_LOCATION: AgvMapObjectType
AGV_MAP_OBJECT_EXTERNAL_DEVICE: AgvMapObjectType

class AgvPose2d(_message.Message):
    __slots__ = ("x", "y", "theta")
    X_FIELD_NUMBER: _ClassVar[int]
    Y_FIELD_NUMBER: _ClassVar[int]
    THETA_FIELD_NUMBER: _ClassVar[int]
    x: float
    y: float
    theta: float
    def __init__(self, x: _Optional[float] = ..., y: _Optional[float] = ..., theta: _Optional[float] = ...) -> None: ...

class AgvVelocity(_message.Message):
    __slots__ = ("vx", "vy", "wz")
    VX_FIELD_NUMBER: _ClassVar[int]
    VY_FIELD_NUMBER: _ClassVar[int]
    WZ_FIELD_NUMBER: _ClassVar[int]
    vx: float
    vy: float
    wz: float
    def __init__(self, vx: _Optional[float] = ..., vy: _Optional[float] = ..., wz: _Optional[float] = ...) -> None: ...

class AgvBatteryState(_message.Message):
    __slots__ = ("percentage", "voltage", "current", "temperature", "charging")
    PERCENTAGE_FIELD_NUMBER: _ClassVar[int]
    VOLTAGE_FIELD_NUMBER: _ClassVar[int]
    CURRENT_FIELD_NUMBER: _ClassVar[int]
    TEMPERATURE_FIELD_NUMBER: _ClassVar[int]
    CHARGING_FIELD_NUMBER: _ClassVar[int]
    percentage: float
    voltage: float
    current: float
    temperature: float
    charging: bool
    def __init__(self, percentage: _Optional[float] = ..., voltage: _Optional[float] = ..., current: _Optional[float] = ..., temperature: _Optional[float] = ..., charging: _Optional[bool] = ...) -> None: ...

class AgvMotionOptions(_message.Message):
    __slots__ = ("max_speed", "max_angular_speed", "max_acceleration", "max_angular_acceleration", "reach_distance", "reach_angle", "speed_ratio", "asynchronous")
    MAX_SPEED_FIELD_NUMBER: _ClassVar[int]
    MAX_ANGULAR_SPEED_FIELD_NUMBER: _ClassVar[int]
    MAX_ACCELERATION_FIELD_NUMBER: _ClassVar[int]
    MAX_ANGULAR_ACCELERATION_FIELD_NUMBER: _ClassVar[int]
    REACH_DISTANCE_FIELD_NUMBER: _ClassVar[int]
    REACH_ANGLE_FIELD_NUMBER: _ClassVar[int]
    SPEED_RATIO_FIELD_NUMBER: _ClassVar[int]
    ASYNCHRONOUS_FIELD_NUMBER: _ClassVar[int]
    max_speed: float
    max_angular_speed: float
    max_acceleration: float
    max_angular_acceleration: float
    reach_distance: float
    reach_angle: float
    speed_ratio: float
    asynchronous: bool
    def __init__(self, max_speed: _Optional[float] = ..., max_angular_speed: _Optional[float] = ..., max_acceleration: _Optional[float] = ..., max_angular_acceleration: _Optional[float] = ..., reach_distance: _Optional[float] = ..., reach_angle: _Optional[float] = ..., speed_ratio: _Optional[float] = ..., asynchronous: _Optional[bool] = ...) -> None: ...

class AgvAdapterParams(_message.Message):
    __slots__ = ("values",)
    class ValuesEntry(_message.Message):
        __slots__ = ("key", "value")
        KEY_FIELD_NUMBER: _ClassVar[int]
        VALUE_FIELD_NUMBER: _ClassVar[int]
        key: str
        value: str
        def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
    VALUES_FIELD_NUMBER: _ClassVar[int]
    values: _containers.ScalarMap[str, str]
    def __init__(self, values: _Optional[_Mapping[str, str]] = ...) -> None: ...

class AgvRuntimeState(_message.Message):
    __slots__ = ("timestamp", "mode", "connected", "localized", "moving", "fault", "emergency_stopped", "pose", "velocity", "battery", "current_map", "current_station", "last_error")
    TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
    MODE_FIELD_NUMBER: _ClassVar[int]
    CONNECTED_FIELD_NUMBER: _ClassVar[int]
    LOCALIZED_FIELD_NUMBER: _ClassVar[int]
    MOVING_FIELD_NUMBER: _ClassVar[int]
    FAULT_FIELD_NUMBER: _ClassVar[int]
    EMERGENCY_STOPPED_FIELD_NUMBER: _ClassVar[int]
    POSE_FIELD_NUMBER: _ClassVar[int]
    VELOCITY_FIELD_NUMBER: _ClassVar[int]
    BATTERY_FIELD_NUMBER: _ClassVar[int]
    CURRENT_MAP_FIELD_NUMBER: _ClassVar[int]
    CURRENT_STATION_FIELD_NUMBER: _ClassVar[int]
    LAST_ERROR_FIELD_NUMBER: _ClassVar[int]
    timestamp: float
    mode: int
    connected: bool
    localized: bool
    moving: bool
    fault: bool
    emergency_stopped: bool
    pose: AgvPose2d
    velocity: AgvVelocity
    battery: AgvBatteryState
    current_map: str
    current_station: str
    last_error: str
    def __init__(self, timestamp: _Optional[float] = ..., mode: _Optional[int] = ..., connected: _Optional[bool] = ..., localized: _Optional[bool] = ..., moving: _Optional[bool] = ..., fault: _Optional[bool] = ..., emergency_stopped: _Optional[bool] = ..., pose: _Optional[_Union[AgvPose2d, _Mapping]] = ..., velocity: _Optional[_Union[AgvVelocity, _Mapping]] = ..., battery: _Optional[_Union[AgvBatteryState, _Mapping]] = ..., current_map: _Optional[str] = ..., current_station: _Optional[str] = ..., last_error: _Optional[str] = ...) -> None: ...

class AgvStation(_message.Message):
    __slots__ = ("id", "type", "pose", "description")
    ID_FIELD_NUMBER: _ClassVar[int]
    TYPE_FIELD_NUMBER: _ClassVar[int]
    POSE_FIELD_NUMBER: _ClassVar[int]
    DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
    id: str
    type: str
    pose: AgvPose2d
    description: str
    def __init__(self, id: _Optional[str] = ..., type: _Optional[str] = ..., pose: _Optional[_Union[AgvPose2d, _Mapping]] = ..., description: _Optional[str] = ...) -> None: ...

class AgvPathSegment(_message.Message):
    __slots__ = ("source_station", "target_station")
    SOURCE_STATION_FIELD_NUMBER: _ClassVar[int]
    TARGET_STATION_FIELD_NUMBER: _ClassVar[int]
    source_station: str
    target_station: str
    def __init__(self, source_station: _Optional[str] = ..., target_station: _Optional[str] = ...) -> None: ...

class AgvMapPoint3D(_message.Message):
    __slots__ = ("x", "y", "z")
    X_FIELD_NUMBER: _ClassVar[int]
    Y_FIELD_NUMBER: _ClassVar[int]
    Z_FIELD_NUMBER: _ClassVar[int]
    x: float
    y: float
    z: float
    def __init__(self, x: _Optional[float] = ..., y: _Optional[float] = ..., z: _Optional[float] = ...) -> None: ...

class AgvUnifiedMap2D(_message.Message):
    __slots__ = ("frame_id", "timestamp", "resolution", "width", "height", "origin", "data", "objects")
    FRAME_ID_FIELD_NUMBER: _ClassVar[int]
    TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
    RESOLUTION_FIELD_NUMBER: _ClassVar[int]
    WIDTH_FIELD_NUMBER: _ClassVar[int]
    HEIGHT_FIELD_NUMBER: _ClassVar[int]
    ORIGIN_FIELD_NUMBER: _ClassVar[int]
    DATA_FIELD_NUMBER: _ClassVar[int]
    OBJECTS_FIELD_NUMBER: _ClassVar[int]
    frame_id: str
    timestamp: float
    resolution: float
    width: int
    height: int
    origin: AgvPose2d
    data: _containers.RepeatedScalarFieldContainer[int]
    objects: _containers.RepeatedCompositeFieldContainer[AgvMapObject]
    def __init__(self, frame_id: _Optional[str] = ..., timestamp: _Optional[float] = ..., resolution: _Optional[float] = ..., width: _Optional[int] = ..., height: _Optional[int] = ..., origin: _Optional[_Union[AgvPose2d, _Mapping]] = ..., data: _Optional[_Iterable[int]] = ..., objects: _Optional[_Iterable[_Union[AgvMapObject, _Mapping]]] = ...) -> None: ...

class AgvMapPointSample3D(_message.Message):
    __slots__ = ("x", "y", "z", "intensity", "ring", "time_offset")
    X_FIELD_NUMBER: _ClassVar[int]
    Y_FIELD_NUMBER: _ClassVar[int]
    Z_FIELD_NUMBER: _ClassVar[int]
    INTENSITY_FIELD_NUMBER: _ClassVar[int]
    RING_FIELD_NUMBER: _ClassVar[int]
    TIME_OFFSET_FIELD_NUMBER: _ClassVar[int]
    x: float
    y: float
    z: float
    intensity: float
    ring: int
    time_offset: float
    def __init__(self, x: _Optional[float] = ..., y: _Optional[float] = ..., z: _Optional[float] = ..., intensity: _Optional[float] = ..., ring: _Optional[int] = ..., time_offset: _Optional[float] = ...) -> None: ...

class AgvMapVoxel3D(_message.Message):
    __slots__ = ("x", "y", "z", "probability")
    X_FIELD_NUMBER: _ClassVar[int]
    Y_FIELD_NUMBER: _ClassVar[int]
    Z_FIELD_NUMBER: _ClassVar[int]
    PROBABILITY_FIELD_NUMBER: _ClassVar[int]
    x: int
    y: int
    z: int
    probability: float
    def __init__(self, x: _Optional[int] = ..., y: _Optional[int] = ..., z: _Optional[int] = ..., probability: _Optional[float] = ...) -> None: ...

class AgvMapPlane3D(_message.Message):
    __slots__ = ("center", "normal", "d", "radius")
    CENTER_FIELD_NUMBER: _ClassVar[int]
    NORMAL_FIELD_NUMBER: _ClassVar[int]
    D_FIELD_NUMBER: _ClassVar[int]
    RADIUS_FIELD_NUMBER: _ClassVar[int]
    center: AgvMapPoint3D
    normal: AgvMapPoint3D
    d: float
    radius: float
    def __init__(self, center: _Optional[_Union[AgvMapPoint3D, _Mapping]] = ..., normal: _Optional[_Union[AgvMapPoint3D, _Mapping]] = ..., d: _Optional[float] = ..., radius: _Optional[float] = ...) -> None: ...

class AgvMapObject(_message.Message):
    __slots__ = ("id", "type", "points", "heading", "properties")
    class PropertiesEntry(_message.Message):
        __slots__ = ("key", "value")
        KEY_FIELD_NUMBER: _ClassVar[int]
        VALUE_FIELD_NUMBER: _ClassVar[int]
        key: str
        value: str
        def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ...
    ID_FIELD_NUMBER: _ClassVar[int]
    TYPE_FIELD_NUMBER: _ClassVar[int]
    POINTS_FIELD_NUMBER: _ClassVar[int]
    HEADING_FIELD_NUMBER: _ClassVar[int]
    PROPERTIES_FIELD_NUMBER: _ClassVar[int]
    id: str
    type: AgvMapObjectType
    points: _containers.RepeatedCompositeFieldContainer[AgvMapPoint3D]
    heading: float
    properties: _containers.ScalarMap[str, str]
    def __init__(self, id: _Optional[str] = ..., type: _Optional[_Union[AgvMapObjectType, str]] = ..., points: _Optional[_Iterable[_Union[AgvMapPoint3D, _Mapping]]] = ..., heading: _Optional[float] = ..., properties: _Optional[_Mapping[str, str]] = ...) -> None: ...

class AgvUnifiedMap3D(_message.Message):
    __slots__ = ("frame_id", "timestamp", "voxel_resolution", "points", "voxels", "planes", "objects")
    FRAME_ID_FIELD_NUMBER: _ClassVar[int]
    TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
    VOXEL_RESOLUTION_FIELD_NUMBER: _ClassVar[int]
    POINTS_FIELD_NUMBER: _ClassVar[int]
    VOXELS_FIELD_NUMBER: _ClassVar[int]
    PLANES_FIELD_NUMBER: _ClassVar[int]
    OBJECTS_FIELD_NUMBER: _ClassVar[int]
    frame_id: str
    timestamp: float
    voxel_resolution: float
    points: _containers.RepeatedCompositeFieldContainer[AgvMapPointSample3D]
    voxels: _containers.RepeatedCompositeFieldContainer[AgvMapVoxel3D]
    planes: _containers.RepeatedCompositeFieldContainer[AgvMapPlane3D]
    objects: _containers.RepeatedCompositeFieldContainer[AgvMapObject]
    def __init__(self, frame_id: _Optional[str] = ..., timestamp: _Optional[float] = ..., voxel_resolution: _Optional[float] = ..., points: _Optional[_Iterable[_Union[AgvMapPointSample3D, _Mapping]]] = ..., voxels: _Optional[_Iterable[_Union[AgvMapVoxel3D, _Mapping]]] = ..., planes: _Optional[_Iterable[_Union[AgvMapPlane3D, _Mapping]]] = ..., objects: _Optional[_Iterable[_Union[AgvMapObject, _Mapping]]] = ...) -> None: ...

class AgvUnifiedMapUpdate(_message.Message):
    __slots__ = ("map_id", "session_id", "sequence", "resume_token", "dimension", "update_type", "frame_id", "timestamp", "snapshot_begin", "snapshot_end", "chunk_index", "chunk_count", "map_2d", "map_3d")
    MAP_ID_FIELD_NUMBER: _ClassVar[int]
    SESSION_ID_FIELD_NUMBER: _ClassVar[int]
    SEQUENCE_FIELD_NUMBER: _ClassVar[int]
    RESUME_TOKEN_FIELD_NUMBER: _ClassVar[int]
    DIMENSION_FIELD_NUMBER: _ClassVar[int]
    UPDATE_TYPE_FIELD_NUMBER: _ClassVar[int]
    FRAME_ID_FIELD_NUMBER: _ClassVar[int]
    TIMESTAMP_FIELD_NUMBER: _ClassVar[int]
    SNAPSHOT_BEGIN_FIELD_NUMBER: _ClassVar[int]
    SNAPSHOT_END_FIELD_NUMBER: _ClassVar[int]
    CHUNK_INDEX_FIELD_NUMBER: _ClassVar[int]
    CHUNK_COUNT_FIELD_NUMBER: _ClassVar[int]
    MAP_2D_FIELD_NUMBER: _ClassVar[int]
    MAP_3D_FIELD_NUMBER: _ClassVar[int]
    map_id: str
    session_id: str
    sequence: int
    resume_token: str
    dimension: AgvMapDimension
    update_type: AgvMapUpdateType
    frame_id: str
    timestamp: float
    snapshot_begin: bool
    snapshot_end: bool
    chunk_index: int
    chunk_count: int
    map_2d: AgvUnifiedMap2D
    map_3d: AgvUnifiedMap3D
    def __init__(self, map_id: _Optional[str] = ..., session_id: _Optional[str] = ..., sequence: _Optional[int] = ..., resume_token: _Optional[str] = ..., dimension: _Optional[_Union[AgvMapDimension, str]] = ..., update_type: _Optional[_Union[AgvMapUpdateType, str]] = ..., frame_id: _Optional[str] = ..., timestamp: _Optional[float] = ..., snapshot_begin: _Optional[bool] = ..., snapshot_end: _Optional[bool] = ..., chunk_index: _Optional[int] = ..., chunk_count: _Optional[int] = ..., map_2d: _Optional[_Union[AgvUnifiedMap2D, _Mapping]] = ..., map_3d: _Optional[_Union[AgvUnifiedMap3D, _Mapping]] = ...) -> None: ...

class AgvNavigationStatus(_message.Message):
    __slots__ = ("state", "type", "progress", "message")
    STATE_FIELD_NUMBER: _ClassVar[int]
    TYPE_FIELD_NUMBER: _ClassVar[int]
    PROGRESS_FIELD_NUMBER: _ClassVar[int]
    MESSAGE_FIELD_NUMBER: _ClassVar[int]
    state: int
    type: int
    progress: float
    message: str
    def __init__(self, state: _Optional[int] = ..., type: _Optional[int] = ..., progress: _Optional[float] = ..., message: _Optional[str] = ...) -> None: ...
