import * as OBC from '@thatopen/components'; export type NavigationMode = 'Orbit' | 'FirstPerson'; export declare const MIN_MOVE_SPEED = 1; export declare const MAX_MOVE_SPEED = 10; export declare const DEFAULT_MOVE_SPEED = 4; export interface CameraNavigationState { mode: NavigationMode; moveSpeed: number; lockElevation: boolean; } /** * Walk-mode navigation for the BIM camera: the mode, the walk speed, an elevation lock and * WASD/arrow movement. Owns the loop so a closed sidebar cannot strand a held key. */ export declare class CameraNavigation extends OBC.Component implements OBC.Disposable { static readonly uuid: "6a4f1c92-7d38-4b5e-9f21-0c7ab3e5d184"; readonly onChanged: OBC.Event; readonly onElevationChanged: OBC.Event; readonly onDisposed: OBC.Event; enabled: boolean; private currentMode; private currentMoveSpeed; private elevationLocked; private readonly pressed; private frameHandle; private lastFrame; private lockedElevation; private reportedElevation; constructor(components: OBC.Components); get state(): CameraNavigationState; get mode(): NavigationMode; /** First person cannot run under an orthographic lens, so it is refused rather than half-applied. */ canUse(mode: NavigationMode): boolean; setMode(mode: NavigationMode): void; setMoveSpeed(moveSpeed: number): void; setLockElevation(lockElevation: boolean): void; /** Metres in world space, which for a Y-up scene is the camera's height. */ get elevation(): number | null; setElevation(metres: number): void; dispose(): void; private publish; private camera; private controls; private applyMoveSpeed; private readonly onKeyDown; private readonly onKeyUp; private readonly releaseKeys; private startLoop; private stopLoop; private readonly step; private wake; private reportElevation; private walk; private holdElevation; } //# sourceMappingURL=CameraNavigation.d.ts.map