import { TAbstractService } from '../../Abstract'; import { TWithSceneGetterService } from '../../Mixins'; import { World } from '@dimforge/rapier3d'; import { Vector3 } from 'three'; import { TPhysicsDebugRenderer } from './TPhysicsDebugRenderer'; import { TPhysicsLoop } from './TPhysicsLoop'; import { TPhysicsWorldConfig } from './TPhysicsWorldConfig'; import { TPhysicsWorldParams } from './TPhysicsWorldParams'; export type TPhysicsWorldService = TAbstractService & TWithSceneGetterService & Readonly<{ createWorld: (physicsWorldParams: TPhysicsWorldParams) => World; getDebugRenderer: (loopService: TPhysicsLoop) => TPhysicsDebugRenderer; setGravity: (vector: Vector3) => void; findWorld: () => World | undefined; getWorld: () => World | never; serializeWorld: () => TPhysicsWorldConfig | never; }>;