"""ROS1 trajectory_msgs message definitions for noetic.

Auto-generated by scripts/generate_ros1_messages.py
Source: https://github.com/ros/common_msgs/tree/noetic-devel/trajectory_msgs/msg
"""
from __future__ import annotations

from dataclasses import dataclass
from typing import Literal

import pybag.ros1.noetic.geometry_msgs as geometry_msgs
import pybag.ros1.noetic.std_msgs as std_msgs
import pybag.types as t


@dataclass(kw_only=True)
class JointTrajectoryPoint:
    __msg_name__ = 'trajectory_msgs/JointTrajectoryPoint'

    positions: t.Array[t.float64]
    velocities: t.Array[t.float64]
    accelerations: t.Array[t.float64]
    effort: t.Array[t.float64]
    time_from_start: t.ros1.duration


@dataclass(kw_only=True)
class MultiDOFJointTrajectoryPoint:
    __msg_name__ = 'trajectory_msgs/MultiDOFJointTrajectoryPoint'

    transforms: t.Array[geometry_msgs.Transform]
    velocities: t.Array[geometry_msgs.Twist]
    accelerations: t.Array[geometry_msgs.Twist]
    time_from_start: t.ros1.duration


@dataclass(kw_only=True)
class JointTrajectory:
    __msg_name__ = 'trajectory_msgs/JointTrajectory'

    header: std_msgs.Header
    joint_names: t.Array[t.string]
    points: t.Array[JointTrajectoryPoint]


@dataclass(kw_only=True)
class MultiDOFJointTrajectory:
    __msg_name__ = 'trajectory_msgs/MultiDOFJointTrajectory'

    header: std_msgs.Header
    joint_names: t.Array[t.string]
    points: t.Array[MultiDOFJointTrajectoryPoint]
