import Ammo from 'ammojs-typed'; import { CollisionType } from './Types'; export interface AmmoShape { type?: 'box' | 'cylinder'; size: { length: number; height: number; width: number; }; pose: number[]; } export interface AmmoBodyInfo { shapes: [AmmoShape]; friction?: number; restitution?: number; damping?: [number, number]; collisionType?: CollisionType; } export declare class AmmoBody { private _body; private _world; private _tempTransform; private _tempVec; private _tempQua; private _mass; private _info; private _id; constructor(world: Ammo.btDiscreteDynamicsWorld, id: number, mass: number, info: AmmoBodyInfo, pose: number[]); get PhyBody(): Ammo.btRigidBody; get CollisionType(): CollisionType; get Id(): number; get IsStatic(): boolean; getTransform(pose: number[]): Ammo.btTransform; createBoxShape(length: number, height: number, width: number): Ammo.btBoxShape; createCylinderShape(length: number, height: number, width: number): Ammo.btCylinderShape; createCompoundBoxShape(shapes: AmmoShape[]): Ammo.btCompoundShape; setInfo(): void; initBody(pose: number[]): void; setStaticObject(): void; changeCollisionType(type: CollisionType, pose: number[]): void; setPose(pose: number[]): void; getPose(): number[]; remove(): void; } export declare class PhysiAmmoWorker { private _world; private _bodyMap; private _bodyEntityMap; private _collideCheckEntityIds; private _loading; private _dynamicbodyArray; private _controllerBodyArray; private _collidionArray; private _debug; private _debugDrawer; private _debugArray; private _fixedTimeStep; private _lastSimulationDuration; private _lastSimulationTime; private _alive; constructor(); setSharedBuffer(dynamicbodyArray: any, controllerBodyArray: any, collidionArray: any, _debugArray?: any): void; init(): Promise; delay(ms: number): Promise; waitForAmmoReady(): Promise; addCollideCheckEntity(id: number): void; removeCollideCheckEntity(id: number): void; syncDynamicsBodyPoses(): void; syncControllerBodyPoses(): void; handleCollideCheck(): void; setGround(): void; addBody(entityId: number, id: number, pose: number[], mass: number, info: AmmoBodyInfo): Promise; removeBody(bodyId: number): void; changeCollisionType(id: number, type: CollisionType, pose: number[]): void; simulate(): void; destroy(): void; }