import RAPIER from '@dimforge/rapier3d-compat'; import { Component } from '@certe/atmos-core'; import type { PhysicsWorld } from './physics-world.js'; export type RigidBodyType = 'dynamic' | 'fixed' | 'kinematic'; export interface RigidBodyOptions { type?: RigidBodyType; mass?: number; linearDamping?: number; angularDamping?: number; gravityScale?: number; } export declare class RigidBody extends Component { body: RAPIER.RigidBody | null; bodyType: RigidBodyType; private _world; private _linearDamping; private _angularDamping; private _gravityScale; /** When true, Transform is extrapolated between physics steps to reduce jitter. */ interpolate: boolean; get linearDamping(): number; set linearDamping(v: number); get angularDamping(): number; set angularDamping(v: number); get gravityScale(): number; set gravityScale(v: number); init(world: PhysicsWorld, options?: RigidBodyOptions): void; /** Auto-initialize if not already initialized (called by PhysicsSystem). */ autoInit(world: PhysicsWorld): void; /** Copy Rapier body transform → engine Transform (for dynamic bodies) */ syncToTransform(): void; /** Extrapolate Transform using Rapier body position + velocity * dt. */ extrapolateTransform(dt: number): void; /** Copy engine Transform → Rapier body (for kinematic bodies) */ syncFromTransform(): void; /** Teleport Rapier body to match engine Transform (for external edits on dynamic bodies) */ teleportToTransform(): void; addForce(x: number, y: number, z: number): void; addImpulse(x: number, y: number, z: number): void; onDestroy(): void; /** Walk descendants and null out collider handles that reference this body. */ private _invalidateChildColliders; } //# sourceMappingURL=rigid-body.d.ts.map