import * as THREE from 'three';
import { BaseInputHandler } from './baseInputHandler';
import { KeyboardHandler } from './keyboardHandler';
import { MouseHandler } from './mouseHandler';
import { TouchHandler } from './touchHandler';
import { IInputAdapter } from './inputAdapter';
export declare enum PointerMode {
    ORBIT = "orbit",
    LOOK = "look",
    PAN = "pan",
    ZOOM = "zoom",
    RECT = "rect"
}
interface InputSettings {
    orbit: boolean;
    scrollSpeed: number;
    moveSpeed: number;
    rotateSpeed: number;
    orbitSpeed: number;
}
export declare class InputHandler extends BaseInputHandler {
    /**
     * Touch input handler
     */
    touch: TouchHandler;
    /**
     * Mouse input handler
     */
    mouse: MouseHandler;
    /**
     * Keyboard input handler
     */
    keyboard: KeyboardHandler;
    scrollSpeed: number;
    private _moveSpeed;
    rotateSpeed: number;
    orbitSpeed: number;
    private _pointerActive;
    private _pointerFallback;
    private _pointerOverride;
    private _onPointerOverrideChanged;
    private _onPointerModeChanged;
    private _onSettingsChanged;
    private _adapter;
    constructor(canvas: HTMLCanvasElement, adapter: IInputAdapter, settings?: Partial<InputSettings>);
    getZoomValue(value: number): number;
    init(): void;
    get moveSpeed(): number;
    set moveSpeed(value: number);
    get onSettingsChanged(): import("ste-signals").ISignal;
    /**
     * Returns the last main mode (orbit, look) that was active.
     */
    get pointerFallback(): PointerMode;
    /**
     * Returns current pointer mode.
     */
    get pointerActive(): PointerMode;
    /**
     * A temporary pointer mode used for temporary icons.
     */
    get pointerOverride(): PointerMode;
    set pointerOverride(value: PointerMode | undefined);
    /**
     * Changes pointer interaction mode. Look mode will set camera orbitMode to false.
     */
    set pointerActive(value: PointerMode);
    /**
     * Event called when pointer interaction mode changes.
     */
    get onPointerModeChanged(): import("ste-signals").ISignal;
    /**
     * Event called when the pointer is temporarily overriden.
     */
    get onPointerOverrideChanged(): import("ste-signals").ISignal;
    private _onContextMenu;
    /**
     * Event called when when context menu could be displayed
     */
    get onContextMenu(): import("ste-simple-events").ISimpleEvent<THREE.Vector2>;
    /**
     * Calls context menu action
     */
    ContextMenu(position: THREE.Vector2 | undefined): void;
    /**
   * Register inputs handlers for default viewer behavior
   */
    registerAll(): void;
    /**
     * Unregisters all input handlers
     */
    unregisterAll: () => void;
    /**
     * Resets all input state
     */
    resetAll(): void;
    dispose(): void;
}
export {};
