import { type RigidBodyObjectProps, type RigidBodyObjectRef } from './RigidBodyObject'; import { CollisionExitHandler, ContactForceHandler, RapierRigidBody } from '@react-three/rapier'; import * as THREE from 'three'; export interface RigidBodyPlayerProps extends RigidBodyObjectProps { /** * Height of the character to be controlled (unit: meters) * @default 1.6 */ targetHeight?: number; /** * Whether to automatically create a default CapsuleCollider * The CapsuleCollider dimensions are calculated based on targetHeight * If false, you should provide colliders as children * @default true */ autoCreateCollider?: boolean; /** * Vertical offset for the children group (unit: meters) * If not specified, defaults to targetHeight / 2 */ offsetY?: number; } export interface RigidBodyPlayerRef extends RigidBodyObjectRef { readonly bottomY: number; } type NullableRigidBodyPlayerRef = RigidBodyPlayerRef | null; export interface RigidBodyPlayerHandle { readonly rigidBody: RapierRigidBody; readonly group: THREE.Group; readonly slopeRayMesh: THREE.Mesh; readonly isPhysicsInitialized: boolean; readonly capsuleHalfHeight: number; readonly capsuleRadius: number; onContactForce?: ContactForceHandler; onCollisionExit?: CollisionExitHandler; } export declare const RigidBodyPlayer: import("react").ForwardRefExoticComponent>; export {};