import RAPIER from '@dimforge/rapier3d-compat'; import type { Vec3Type } from '@certe/atmos-math'; import { Joint } from './joint.js'; import type { JointOptions } from './joint.js'; import type { PhysicsWorld } from './physics-world.js'; type AxisOption = { x: number; y: number; z: number; } | Float32Array; export interface HingeJointOptions extends JointOptions { axis?: AxisOption; connectedAxis?: AxisOption; autoConfigureConnectedAxis?: boolean; limitsEnabled?: boolean; limitMin?: number; limitMax?: number; motorEnabled?: boolean; motorMode?: 'velocity' | 'position'; motorTargetVelocity?: number; motorMaxForce?: number; motorTargetPosition?: number; motorStiffness?: number; motorDamping?: number; } export declare class HingeJoint extends Joint { private readonly _axis; private readonly _connectedAxisVec; private _autoConfigureConnectedAxis; private _limitsEnabled; private _limitMin; private _limitMax; private _motorEnabled; private _motorMode; private _motorTargetVelocity; private _motorMaxForce; private _motorTargetPosition; private _motorStiffness; private _motorDamping; /** Current joint angle in radians. Computed from body orientations and joint frames. */ get angle(): number; get axis(): Vec3Type; set axis(v: Vec3Type); get connectedAxis(): Vec3Type; set connectedAxis(v: Vec3Type); get autoConfigureConnectedAxis(): boolean; set autoConfigureConnectedAxis(v: boolean); get limitsEnabled(): boolean; set limitsEnabled(v: boolean); get limitMin(): number; set limitMin(v: number); get limitMax(): number; set limitMax(v: number); get motorEnabled(): boolean; set motorEnabled(v: boolean); get motorMode(): 'velocity' | 'position'; set motorMode(v: 'velocity' | 'position'); get motorTargetVelocity(): number; set motorTargetVelocity(v: number); get motorMaxForce(): number; set motorMaxForce(v: number); get motorTargetPosition(): number; set motorTargetPosition(v: number); get motorStiffness(): number; set motorStiffness(v: number); get motorDamping(): number; set motorDamping(v: number); init(world: PhysicsWorld, options?: HingeJointOptions): void; refreshAutoConfig(): void; protected _tryCreateJoint(): void; private _computeConnectedAxis; private _setVec3; private _applyLimits; private _applyMotor; protected _createJointData(): RAPIER.JointData; } export {}; //# sourceMappingURL=hinge-joint.d.ts.map