import * as THREE from 'three'; import { Application } from './Application'; import { Entity } from './Entity'; import { CollisionType } from './Types'; export interface AmmoShape { type?: 'box' | 'cylinder'; size: { length: number; height: number; width: number; }; offset: THREE.Vector3; rotation: THREE.Quaternion; } export interface AmmoBodyInfo { shapes: [AmmoShape]; friction?: number; restitution?: number; damping?: [number, number]; collisionType?: CollisionType; } export declare class AmmoBody { private _worker; private _id; private _entity; private _object; private _collisionType; constructor(worker: any, id: number, entity: Entity, object: THREE.Object3D, collisionType: CollisionType); get Id(): number; get Entity(): Entity; get Object(): THREE.Object3D; get CollisionType(): CollisionType; setStaticObject(): void; changeCollisionType(type: CollisionType): void; setPose(array: any, offset: number): void; getPose(array: any, offset: number): void; } export declare class PhysiAmmoW { private _app; private _bodyMap; private _worker; private _ready; private _debug; private _debugger; private _dynamicbodyArray; private _dynamicBodyValues; private _controllerBodyArray; private _controllerBodyValues; private _collideArray; private _collideValues; constructor(app: Application, debug?: boolean); get Type(): string; init(): Promise; handleMessage(event: any): void; delay(ms: number): Promise; waitForAmmoReady(): Promise; addCollideCheckEntity(entity: any): void; removeCollideCheckEntity(entity: any): void; reformatInfo(info: AmmoBodyInfo): { shapes: { type: "box" | "cylinder"; size: { length: number; height: number; width: number; }; pose: number[]; }[]; friction?: number; restitution?: number; damping?: [number, number]; collisionType?: CollisionType; }; addBody(entity: Entity, object: THREE.Object3D, mass: number, info: AmmoBodyInfo): Promise; removeBody(body: AmmoBody): void; syncControllerBodyPoses(): void; syncDynamicsBodyPoses(): void; handleCollidions(): void; update(deltaTime: number): void; destroy(): void; }