import RAPIER from '@dimforge/rapier3d-compat'; export interface PhysicsWorldOptions { gravity?: { x: number; y: number; z: number; }; fixedTimestep?: number; solverIterations?: number; } export declare class PhysicsWorld { readonly world: RAPIER.World; fixedTimestep: number; substeps: number; private _accumulator; /** Time remaining after the last fixed step (for interpolation/extrapolation). */ get accumulator(): number; constructor(options?: PhysicsWorldOptions); setGravity(x: number, y: number, z: number): void; setSolverIterations(n: number): void; /** Advance the simulation by dt seconds using fixed timestep accumulator. Returns steps taken. */ step(dt: number): number; createRigidBody(desc: RAPIER.RigidBodyDesc): RAPIER.RigidBody; createCollider(desc: RAPIER.ColliderDesc, body: RAPIER.RigidBody): RAPIER.Collider; removeRigidBody(body: RAPIER.RigidBody): void; removeCollider(collider: RAPIER.Collider): void; createJoint(data: RAPIER.JointData, body1: RAPIER.RigidBody, body2: RAPIER.RigidBody): RAPIER.ImpulseJoint; removeJoint(joint: RAPIER.ImpulseJoint): void; /** Reset the fixed-timestep accumulator (e.g. after pause→play). */ resetAccumulator(): void; destroy(): void; } //# sourceMappingURL=physics-world.d.ts.map