import { type ContentsFlag } from '../bsp/contents.js'; import { type Vec3 } from '../math/vec3.js'; import { type PmFlags, PmType } from './constants.js'; import type { PmovePointContentsFn, PmoveTraceFn, PmoveTraceResult } from './types.js'; export interface CategorizePositionParams { readonly pmType: PmType; readonly pmFlags: PmFlags; readonly pmTime: number; readonly n64Physics: boolean; readonly velocity: Vec3; readonly startVelocity: Vec3; readonly origin: Vec3; readonly mins: Vec3; readonly maxs: Vec3; readonly viewheight: number; readonly trace: PmoveTraceFn; readonly pointContents: PmovePointContentsFn; } export interface CategorizePositionResult { readonly pmFlags: PmFlags; readonly pmTime: number; readonly onGround: boolean; readonly groundTrace?: PmoveTraceResult; readonly groundContents: ContentsFlag; readonly waterlevel: number; readonly watertype: ContentsFlag; readonly impactDelta?: number; } /** * Pure mirror of PM_CatagorizePosition from `rerelease/p_move.cpp`: traces a quarter-unit * below the player bounds to determine whether they stand on solid ground, updates timers * and pmflags accordingly, records the latest ground plane data, and recalculates waterlevel * by probing feet/waist/viewheight samples. */ export declare function categorizePosition(params: CategorizePositionParams): CategorizePositionResult; //# sourceMappingURL=categorize.d.ts.map