import { Object3D, Vector3 } from 'three'; import { BvhPhysicsWorld } from './world.js'; export type BvhCharacterPhysicsOptions = { /** * @default 60 */ updatesPerSecond?: number; /** * @default 0.4 */ capsuleRadius?: number; /** * @default 1.7 */ capsuleHeight?: number; /** * Gravity acceleration in m/s² * @default -20 */ gravity?: number; /** * Linear damping coefficient (air resistance) * @default 0.1 */ linearDamping?: number; /** * @default 0.5; */ maxGroundSlope?: number; } | boolean; /** * assumes the target object origin is at its bottom */ export declare class BvhCharacterPhysics { private readonly world; private readonly stateVelocity; readonly inputVelocity: Vector3; private notGroundedSeconds; private readonly segment; private readonly aabbox; private radius; get isGrounded(): boolean; constructor(world: BvhPhysicsWorld); applyVelocity(velocity: Vector3): void; /** * @param delta in seconds */ update(model: Object3D, fullDelta: number, options?: BvhCharacterPhysicsOptions): void; private updateBoundingShapes; shapecastCapsule(position: Vector3, maxGroundSlope: number, options: Exclude): boolean; } export * from './world.js';