export type GlideVec3 = readonly [number, number, number]; export interface GlideModelConfig { /** Fraction of gravity felt while gliding; default `0.25`. */ gravityScale?: number; /** Gravity used before scaling; default `20`. */ gravity?: number; /** Forward cruise acceleration toward `forwardSpeed`; default `10`. */ thrustAccel?: number; /** Cruise speed the glider settles toward along its heading; default `12`. */ forwardSpeed?: number; /** Yaw radians/s at full steer input; default `1.6`. */ yawRate?: number; /** Vertical thrust (units/s²) at full throttle — powered climb; default `0` (unpowered glide). */ climbAccel?: number; /** Terminal fall speed; default `8`. */ maxFallSpeed?: number; /** Control softness in `[0, 1]` — `1` full authority, lower values (turbulence) blunt steering and thrust; default `1`. */ control?: number; } export interface GlideInput { /** Steering in `[-1, 1]` (positive turns toward +x when facing +z). */ yaw?: number; /** Powered climb in `[0, 1]` (needs `climbAccel`). */ throttle?: number; /** Runtime control-authority override in `[0, 1]` — schedule-varying turbulence; overrides the config `control`. */ control?: number; } export interface GlideStep { position: GlideVec3; velocity: GlideVec3; heading: number; } /** * A kinematic glider (#282.6) — the walk-controller-compatible sibling of `physics/traversal`'s * rigid-body `Glide`, with the yaw and powered-climb authority that one lacks. External flows — * `physics/flowTube` corridors, `world/windZones` schedules — compose per tick through * `externalVelocity`, and turbulence degrades control through the `control` scalar. */ export interface GlideModel { step(dt: number, input?: GlideInput, externalVelocity?: GlideVec3): GlideStep; pose(): GlideStep; launch(position: GlideVec3, heading: number, initialSpeed?: number): void; /** Plain JSON copy of the glider's position, velocity and heading. */ snapshot(): GlideStep; restore(next: GlideStep): void; } /** * Gliding/wingsuit descent control — lift, drag, and steering from a launch. * * @capability glide gliding/wingsuit descent control from a launch */ export declare function createGlideModel(config?: GlideModelConfig): GlideModel;