import { Model } from '../../mujoco-wasm'; import { DialSchema } from '@vuer-ai/vuer-uikit'; /** * MuJoCo joint types (mjtJoint enum) */ export declare const MJT_JOINT: { readonly FREE: 0; readonly BALL: 1; readonly SLIDE: 2; readonly HINGE: 3; }; export interface JointMetadata { name: string; type: number; qposAdr: number; hasLimits: boolean; lower: number; upper: number; } export interface ActuatorMetadata { name: string; hasLimits: boolean; lower: number; upper: number; } export interface MuJoCoModelMetadata { joints: JointMetadata[]; actuators: ActuatorMetadata[]; qposSchemas: DialSchema[]; ctrlSchemas: DialSchema[]; groups: { name: string; layout: 'grid'; gridCols: number; }[]; } /** * Hook to extract joint and actuator metadata from MuJoCo model * and generate DialSchema arrays for control panels. * * @param model - MuJoCo model instance * @returns Metadata and schemas for qpos and ctrl controls */ export declare function useMuJoCoModelMetadata(model: Model | null): MuJoCoModelMetadata;