import { Camera, Controls, Vector2, Object3D } from "three";
interface WalkControlsEventMap {
    change: {
        type: "change";
    };
    walkspeedchange: {
        type: "walkspeedchange";
        data: number;
    };
}
export declare class WalkControls extends Controls<WalkControlsEventMap> {
    readonly EYE_HEIGHT = 1.7;
    readonly FAILING_DISTANCE = 2;
    readonly GROUND_FOLLOWING_SKIP_FRAMES = 3;
    readonly GROUND_FOLLOWING_SPEED = 0.4;
    readonly LOOK_SPEED = 0.1;
    readonly WALK_SPEED_DELIMITER = 4;
    readonly WHEEL_SPEED_DELIMITER = 15000;
    movementSpeed: number;
    multiplier: number;
    private groundFollowingSkippedFrames;
    private raycaster;
    private groundObjects;
    private moveKeys;
    private moveWheel;
    private moveClock;
    private quaternion;
    private downPosition;
    private mouseDragOn;
    rotateDelta: Vector2;
    private camera;
    private readonly _up;
    private readonly _forward;
    private readonly _sideways;
    constructor(camera: Camera, canvas: HTMLElement, groundObjects: Object3D[]);
    dispose(): void;
    onPointerDown: (event: PointerEvent) => void;
    onPointerMove: (event: PointerEvent) => void;
    onPointerUp: (event: PointerEvent) => void;
    onPointerCancel: (event: PointerEvent) => void;
    onWheel: (event: WheelEvent) => void;
    onKeyDown: (event: KeyboardEvent) => void;
    onKeyUp: (event: KeyboardEvent) => void;
    private updateGroundFollowing;
    update(): void;
    rotateCamera(delta: Vector2): void;
}
export {};
