export namespace DEFAULT_KEYBOARD_ZOOM_MOTION_CONFIG {
    namespace pan {
        let baseSpeed: number;
        let maxExtraSpeed: number;
        let pressHalfLifeMs: number;
        let releaseHalfLifeMs: number;
        let holdGrowthHalfLifeMs: number;
        let stopVelocity: number;
    }
    namespace zoom {
        let baseSpeed_1: number;
        export { baseSpeed_1 as baseSpeed };
        let maxExtraSpeed_1: number;
        export { maxExtraSpeed_1 as maxExtraSpeed };
        let pressHalfLifeMs_1: number;
        export { pressHalfLifeMs_1 as pressHalfLifeMs };
        let releaseHalfLifeMs_1: number;
        export { releaseHalfLifeMs_1 as releaseHalfLifeMs };
        let holdGrowthHalfLifeMs_1: number;
        export { holdGrowthHalfLifeMs_1 as holdGrowthHalfLifeMs };
        let stopVelocity_1: number;
        export { stopVelocity_1 as stopVelocity };
    }
}
/**
 * Handles smooth WASD navigation motion with acceleration and braking.
 */
export default class KeyboardZoomMotion {
    /**
     * @param {typeof DEFAULT_KEYBOARD_ZOOM_MOTION_CONFIG} [config]
     */
    constructor(config?: typeof DEFAULT_KEYBOARD_ZOOM_MOTION_CONFIG);
    /**
     * @param {string} code
     */
    isNavigationKey(code: string): code is "KeyW" | "KeyA" | "KeyS" | "KeyD";
    /**
     * @param {string} code
     * @returns {boolean} true if the key state changed
     */
    handleKeyDown(code: string): boolean;
    /**
     * @param {string} code
     * @returns {boolean} true if the key state changed
     */
    handleKeyUp(code: string): boolean;
    reset(): void;
    /**
     * @param {number} dtMs
     * @returns {MotionStep}
     */
    step(dtMs: number): MotionStep;
    isActive(): boolean;
    #private;
}
export type NavigationKeyCode = "KeyW" | "KeyA" | "KeyS" | "KeyD";
export type AxisProfile = {
    /**
     * Target speed reached rapidly after key press.
     */
    baseSpeed: number;
    /**
     * Additional speed gained during sustained hold.
     */
    maxExtraSpeed: number;
    /**
     * Half-life for accelerating toward target speed.
     */
    pressHalfLifeMs: number;
    /**
     * Half-life for braking velocity after release.
     */
    releaseHalfLifeMs: number;
    /**
     * Half-life for hold-time extra acceleration.
     */
    holdGrowthHalfLifeMs: number;
    /**
     * Velocity threshold below which motion snaps to zero.
     */
    stopVelocity: number;
};
export type AxisState = {
    velocity: number;
    holdMs: number;
    direction: -1 | 0 | 1;
};
export type MotionStep = {
    panDelta: number;
    zoomDelta: number;
    active: boolean;
};
//# sourceMappingURL=keyboardZoomMotion.d.ts.map