/**
 * Default symmetric stride-timing curve for the jump-impulse decision
 * point. Peaks at the midstance phases (≈0.25 R-mid, ≈0.75 L-mid) and
 * troughs near the footfall transitions (≈0, ≈0.5).
 *
 * Curve is asymmetric in magnitude per the project rule: bonus side is
 * larger than penalty side. Default peak = +12%, default trough = −4%.
 * The curve is keyed at the four phase critical points; the engine's
 * tangent-interpolation gives smooth motion between them.
 *
 * @returns {AnimationCurve}
 */
export function makeDefaultStrideTimingJumpCurve(): AnimationCurve;
/**
 * Mastery evaluator: jump impulse magnitude scales with stride-phase
 * timing. Pressing jump at midstance (legs straight, body high in the
 * gait cycle, push-off power available) gives a small bonus. Pressing
 * during loading response (just after foot strike, body's downward
 * momentum still being absorbed) gives a small penalty.
 *
 * Physically motivated: real athletes get more vertical from a jump
 * timed to ankle/knee extension than from one timed to the loading phase
 * of the gait cycle. The bonus is small (~12% peak) because real
 * difference is also small — this is mastery, not exploit-power.
 *
 * Optional foot-asymmetry: if the player has a configured
 * `dominantFoot`, that foot's midstance peak is slightly higher
 * (representing the natural handedness asymmetry — right-dominant
 * humans push slightly harder off the right leg). Off by default.
 *
 * @author Alex Goldring
 * @copyright Company Named Limited (c) 2026
 */
export class StrideTimingJumpEvaluator extends MasteryEvaluator {
    /**
     * Curve mapping stridePhase ∈ [0..1) → multiplier. Authored to be
     * symmetric in *behaviour* (bonus and penalty regions both
     * present) and asymmetric in *magnitude* (peak > 1 + ε; trough <
     * 1 − ε, with bonus larger than penalty).
     * @type {AnimationCurve}
     */
    curve: AnimationCurve;
    /**
     * Exponent applied to (curve − 1.0). Scales the OVERALL response
     * magnitude without re-authoring the curve. Default 1.0 = use
     * curve as authored. 0.5 = halve all effects. 1.5 = 50% larger.
     * Convention: scale the deviation, not the curve directly, so
     * the symmetry around 1.0 is preserved.
     * @type {number}
     */
    flatBoost: number;
    /**
     * Optional foot-asymmetry: extra bonus when the dominant foot is
     * the standing one at jump time. Set to "R" or "L" to enable.
     * `null` (default) = no asymmetry.
     * @type {"R"|"L"|null}
     */
    dominantFoot: "R" | "L" | null;
    /**
     * Magnitude of the foot-asymmetry contribution (additive to the
     * multiplier). Default 0.03 = up to +3% on dominant-foot jumps.
     * @type {number}
     */
    dominantFootBonus: number;
    evaluate(decisionPoint: any, controller: any, runtime: any): number;
}
import { AnimationCurve } from "../../../animation/curve/AnimationCurve.js";
import { MasteryEvaluator } from "./MasteryEvaluator.js";
//# sourceMappingURL=StrideTimingJumpEvaluator.d.ts.map