import { Object3D, Quaternion, Vector3 } from 'three'; export declare class URDFBase extends Object3D { urdfNode: any | null; urdfName: string; constructor(); copy(source: URDFBase, recursive?: boolean): this; } export declare class URDFCollider extends URDFBase { isURDFCollider: boolean; type: string; constructor(); } export declare class URDFVisual extends URDFBase { isURDFVisual: boolean; type: string; constructor(); } export declare class URDFLink extends URDFBase { isURDFLink: boolean; type: string; constructor(); } export type JointType = 'fixed' | 'continuous' | 'revolute' | 'prismatic' | 'planar' | 'floating'; export interface JointLimit { lower: number; upper: number; } export declare class URDFJoint extends URDFBase { isURDFJoint: boolean; type: string; private _jointType; jointValue: number[] | null; axis: Vector3; limit: JointLimit; ignoreLimits: boolean; origPosition: Vector3 | null; origQuaternion: Quaternion | null; mimicJoints: URDFJoint[]; constructor(); get jointType(): JointType; set jointType(v: JointType); get angle(): number; copy(source: URDFJoint, recursive?: boolean): this; /** * Sets the joint value components. * @param values The joint value components to set, optionally null for no-op * @returns Whether the joint value was updated */ setJointValue(...values: (number | null)[]): boolean; } export declare class URDFMimicJoint extends URDFJoint { type: string; mimicJoint: URDFJoint | JointType | null; offset: number; multiplier: number; constructor(); /** * Updates the joint value based on a mimicked joint's values. * @param values The values from the mimicked joint * @returns Whether the joint value was updated */ updateFromMimickedJoint(...values: number[]): boolean; copy(source: URDFMimicJoint, recursive?: boolean): this; } export interface URDFRobotFrames { [key: string]: URDFBase; } export declare class URDFRobot extends URDFLink { isURDFRobot: boolean; urdfNode: any | null; urdfRobotNode: any | null; robotName: string | null; links: { [key: string]: URDFLink; } | null; joints: { [key: string]: URDFJoint; } | null; colliders: { [key: string]: URDFCollider; } | null; visual: { [key: string]: URDFVisual; } | null; frames: URDFRobotFrames; constructor(); copy(source: URDFRobot, recursive?: boolean): this; getFrame(name: string): URDFBase | undefined; /** * Sets the value of a specific joint. * @param jointName The name of the joint * @param angle The angle or position values to set * @returns Whether the joint value was updated */ setJointValue(jointName: string, ...angle: number[]): boolean; /** * Sets multiple joint values. * @param values An object mapping joint names to their respective values * @returns Whether any joint values were updated */ setJointValues(values: { [name: string]: number | number[]; }): boolean; }