import { Matrix4, Object3D, Object3DEventMap, Quaternion, Vector3 } from 'three'; import { Collider } from './Collider'; import { World as ElicsWorld } from 'elics'; import { GameObject } from '../ecs/GameObject'; import { Physics } from './Physics'; import { RigidBody } from '@dimforge/rapier3d'; export declare const PRIVATE: unique symbol; export declare enum RigidbodyType { Dynamic = "dynamic", Kinematic = "kinematic", Fixed = "fixed" } export declare enum RigidbodyConstraints { None = 0, FreezePositionX = 1, FreezePositionY = 2, FreezePositionZ = 4, FreezeRotationX = 8, FreezeRotationY = 16, FreezeRotationZ = 32, FreezePosition = 7, FreezeRotation = 56, FreezeAll = 63 } export declare type RigidbodyOptions = { type?: RigidbodyType; gravityScale?: number; drag?: number; angularDrag?: number; canSleep?: boolean; ccdEnabled?: boolean; }; export declare class Rigidbody extends GameObject { /** @ignore */ [PRIVATE]: { physics: Physics; rigidbody: RigidBody; canSleep: boolean; constraints: RigidbodyConstraints; colliderVisible: boolean; vec3: Vector3; quat: Quaternion; mat4: Matrix4; }; constructor(world: ElicsWorld, { type, gravityScale, drag, angularDrag, canSleep, ccdEnabled, }?: RigidbodyOptions); get isDynamic(): boolean; get isKinematic(): boolean; get isStatic(): boolean; get enabled(): boolean; set enabled(value: boolean); setBodyType(type: RigidbodyType): void; get mass(): number; /** @readonly */ get linearVelocity(): Vector3; setLinearVelocity(linearVelocity: Vector3): void; /** @readonly */ get angularVelocity(): Vector3; setAngularVelocity(angularVelocity: Vector3): void; get gravityScale(): number; set gravityScale(value: number); get drag(): number; set drag(value: number); get angularDrag(): number; set angularDrag(value: number); get isSleeping(): boolean; get canSleep(): boolean; applyForce(force: Vector3): void; applyTorque(torque: Vector3): void; applyImpulse(impulse: Vector3): void; applyTorqueImpulse(torqueImpulse: Vector3): void; get constraints(): RigidbodyConstraints; set constraints(value: RigidbodyConstraints); wakeUp(): void; sleep(): void; add(...object: Object3D[]): this; remove(...object: Object3D[]): this; get colliders(): Collider[]; get colliderVisible(): boolean; set colliderVisible(value: boolean); updateTransform(): void; syncTransform(): void; setWorldTransform: (worldPosition: Vector3, worldQuaternion: Quaternion) => void; updateMatrixWorld(force?: boolean): void; /** @ignore */ get rapierRigidbody(): RigidBody; } //# sourceMappingURL=Rigidbody.d.ts.map