# This file is automatically generated by pyo3_stub_gen
# ruff: noqa: E501, F401

import typing

class PyRobstrideMotorControlParams:
    position: float
    velocity: float
    kp: float
    kd: float
    torque: float
    def __new__(cls,position:float, velocity:float, kp:float, kd:float, torque:float): ...
    def __repr__(self) -> str:
        ...


class PyRobstrideMotorFeedback:
    can_id: int
    position: float
    velocity: float
    torque: float
    mode: str
    faults: int
    def __repr__(self) -> str:
        ...


class PyRobstrideMotors:
    def __new__(cls,port_name,motor_infos,verbose = ...): ...
    def send_get_mode(self) -> dict[int, str]:
        ...

    def send_set_zero(self, motor_ids:typing.Optional[typing.Sequence[int]]) -> None:
        ...

    def send_resets(self) -> None:
        ...

    def send_starts(self) -> None:
        ...

    def send_motor_controls(self, motor_controls:typing.Mapping[int, PyRobstrideMotorControlParams], serial:bool) -> dict[int, PyRobstrideMotorFeedback]:
        ...

    def __repr__(self) -> str:
        ...


class PyRobstrideMotorsSupervisor:
    total_commands: int
    actual_update_rate: float
    serial: bool
    def __new__(cls,port_name,motor_infos,verbose = ...,target_update_rate = ...): ...
    def set_position(self, motor_id:int, position:float) -> float:
        ...

    def get_position(self, motor_id:int) -> float:
        ...

    def set_velocity(self, motor_id:int, velocity:float) -> float:
        ...

    def get_velocity(self, motor_id:int) -> float:
        ...

    def set_kp(self, motor_id:int, kp:float) -> float:
        ...

    def get_kp(self, motor_id:int) -> float:
        ...

    def set_kd(self, motor_id:int, kd:float) -> float:
        ...

    def get_kd(self, motor_id:int) -> float:
        ...

    def set_torque(self, motor_id:int, torque:float) -> float:
        ...

    def get_torque(self, motor_id:int) -> float:
        ...

    def add_motor_to_zero(self, motor_id:int) -> None:
        ...

    def get_latest_feedback(self) -> dict[int, PyRobstrideMotorFeedback]:
        ...

    def toggle_pause(self) -> None:
        ...

    def stop(self) -> None:
        ...

    def __repr__(self) -> str:
        ...

    def set_params(self, motor_id:int, params:PyRobstrideMotorControlParams) -> None:
        ...

    def failed_commands_for(self, motor_id:int) -> int:
        ...

    def reset_command_counters(self) -> None:
        ...

    def max_update_rate(self, rate:float) -> None:
        ...

    def toggle_serial(self) -> bool:
        ...


