import type { Vec3 } from '../math/vec3.js'; import type { PmoveAccelerateParams, PmoveCmd, PmoveFrictionParams, PmoveWishParams, PmoveWishResult, PmoveState, PmoveImports } from './types.js'; /** * Pure version of PM_Friction from rerelease p_move.cpp. * Handles ground and water friction and returns a new velocity. */ export declare function applyPmoveFriction(params: PmoveFrictionParams): Vec3; /** * Pure version of PM_Accelerate from rerelease p_move.cpp. * Returns a new velocity with wishdir/wishspeed acceleration applied. */ export declare function applyPmoveAccelerate(params: PmoveAccelerateParams): Vec3; /** * Mirrors PM_AirAccelerate in rerelease `p_move.cpp` (lines ~612-636): wishspeed is clamped * to 30 for the addspeed calculation but the acceleration magnitude still uses the full wishspeed. */ export declare function applyPmoveAirAccelerate(params: PmoveAccelerateParams): Vec3; /** * Pure mirror of PM_CmdScale from rerelease `p_move.cpp`. Computes the scalar applied to * the command directional inputs so that the resulting wish velocity caps at `maxSpeed` * regardless of the directional mix. */ export declare function pmoveCmdScale(cmd: PmoveCmd, maxSpeed: number): number; /** * Computes wishdir/wishspeed for ground/air movement as done in PM_AirMove and * PM_GroundMove. Z is forced to zero and wishspeed is clamped to maxSpeed, matching * the rerelease p_move.cpp helpers before they call PM_Accelerate/PM_AirAccelerate. */ export declare function buildAirGroundWish(params: PmoveWishParams): PmoveWishResult; /** * Computes the wishdir/wishspeed mix for water movement, matching PM_WaterMove in * rerelease p_move.cpp: includes the upward bias when no strong upmove is requested, * clamps wishspeed to maxSpeed, and halves the returned wishspeed before acceleration. */ export declare function buildWaterWish(params: PmoveWishParams): PmoveWishResult; /** * Runs the full player movement simulation for a single frame. */ export declare function runPmove(state: PmoveState, imports: PmoveImports): PmoveState; //# sourceMappingURL=pmove.d.ts.map