import type { Vector3 } from "@babylonjs/core/Maths/math.vector"; import type { IBulletWasmInstance } from "./bulletWasmInstance"; import type { IPhysicsRuntime } from "./Impl/IPhysicsRuntime"; declare class PhysicsShapeInner { private readonly _wasmInstance; private _ptr; private _referenceCount; constructor(wasmInstance: WeakRef, ptr: number); dispose(): void; get ptr(): number; addReference(): void; removeReference(): void; } /** * Base class for all bullet physics shapes */ export declare abstract class PhysicsShape { readonly runtime: IPhysicsRuntime; protected readonly _inner: PhysicsShapeInner; protected constructor(runtime: IPhysicsRuntime, ptr: number); dispose(): void; /** * @internal */ get ptr(): number; /** * @internal */ addReference(): void; /** * @internal */ removeReference(): void; } /** * Box shape */ export declare class PhysicsBoxShape extends PhysicsShape { /** * Creates a new box shape * @param runtime physics runtime * @param size half extents of the box shape */ constructor(runtime: IPhysicsRuntime, size: Vector3); } /** * Sphere shape */ export declare class PhysicsSphereShape extends PhysicsShape { /** * Creates a new sphere shape * @param runtime physics runtime * @param radius radius of the sphere shape */ constructor(runtime: IPhysicsRuntime, radius: number); } /** * Cylinder shape */ export declare class PhysicsCapsuleShape extends PhysicsShape { /** * Creates a new capsule shape * @param runtime physics runtime * @param radius radius of the capsule shape * @param height height of the capsule shape */ constructor(runtime: IPhysicsRuntime, radius: number, height: number); } /** * Static plane shape */ export declare class PhysicsStaticPlaneShape extends PhysicsShape { /** * Creates a new static plane shape * @param runtime physics runtime * @param normal normal of the plane shape * @param planeConstant constant of the plane shape */ constructor(runtime: IPhysicsRuntime, normal: Vector3, planeConstant: number); } export {};