import type { TimelineClock } from '../../core/timeline'; import type { DtypeRef } from './dtype-helpers'; /** * One joint-angle sample. `data` is the full joint vector in radians. */ export interface JointAngleSample { ts: number; data: number[]; } export interface JointAngleViewProps { src: string; clock?: TimelineClock | null; /** Optional dtype id or spec. Informational — passed by `` during dispatch. */ dtype?: DtypeRef; className?: string; /** Display fps. Defaults to 30. */ fps?: number; /** Optional per-joint names. Defaults to `J0`, `J1`, …. */ jointNames?: string[]; } /** * JointAngleView — 2.5-D stick-figure of a 7-DoF serial arm. * * Layout (side view): * • joint[0] `shoulder_pan` — base yaw, drawn as a rotating pedestal ellipse * • joint[1] `shoulder_lift` — first planar hinge * • joint[2] `elbow` — second planar hinge * • joint[3] `wrist_1` — third planar hinge * • joint[4] `wrist_2` — end-effector yaw (affects wedge width) * • joint[5] `wrist_3` — end-effector roll (wedge rotates) * • joint[6] `gripper` — parallel-finger opening width * * Data shapes with other DoF counts are still drawn by chaining the first * four available angles as planar hinges; the base pedestal, wrist details * and gripper are only shown when their indices exist. * * ## Data format * JSONL lines `{ ts: number, data: number[] }`. Stride is inferred from the * first sample. Recommended source rate: 30–250 Hz. * * ## Hooks used * `useMergedTrack` + `useTrackSample` (lerp) + `useClockValue` for React * paint. No Canvas — the arm is plain SVG so transforms stay cheap and * crisp at any zoom level. */ export declare function JointAngleView({ src, clock, className, fps, jointNames, }: JointAngleViewProps): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=JointAngleView.d.ts.map