import { Vector3 } from "@babylonjs/core/Maths/math.vector"; import type { DeepImmutable, Nullable } from "@babylonjs/core/types"; import type { IMmdWasmInstance } from "../mmdWasmInstance"; import type { MmdWasmModel } from "../mmdWasmModel"; import { type IPhysicsInitializeSet, type MmdWasmRuntime } from "../mmdWasmRuntime"; import type { IMmdWasmPhysicsRuntime } from "./IMmdWasmPhysicsRuntime"; import type { IMmdWasmPhysicsRuntimeImplCreationOptions, MmdWasmPhysicsRuntimeImpl } from "./mmdWasmPhysicsRuntimeImpl"; declare class PhysicsInitializer implements IPhysicsInitializeSet { private readonly _wasmInternal; constructor(wasmInternal: ReturnType); add(model: MmdWasmModel): void; } /** * @internal */ export declare class MmdWasmPhysicsRuntime implements IMmdWasmPhysicsRuntime { nextWorldId: number; readonly initializer: PhysicsInitializer; private readonly _mmdRuntime; private readonly _physicsWorldPtr; private _maxSubSteps; private _fixedTimeStep; private readonly _gravity; private _worldMatrixBuffer; private _impl; constructor(mmdRuntime: MmdWasmRuntime); dispose(): void; /** * For multiple physics world methods */ private _nullCheck; get maxSubSteps(): number; set maxSubSteps(value: number); get fixedTimeStep(): number; set fixedTimeStep(value: number); setGravity(gravity: DeepImmutable): void; getGravity(result?: Vector3): Nullable; setMmdModelsWorldMatrix(mmdModels: MmdWasmModel[]): void; getImpl(implCtor: typeof MmdWasmPhysicsRuntimeImpl, options?: IMmdWasmPhysicsRuntimeImplCreationOptions): MmdWasmPhysicsRuntimeImpl; get impl(): Nullable; } export {};