/**
 * @module viw-webgl-viewer/inputs
 */
import { Viewer } from '../viewer';
/**
 * TODO: Use the same code for ULTRA and webgl.
 * Base class for various input handlers.
 * It provides convenience to register to and unregister from events.
 */
export declare class InputHandler {
    protected _viewer: Viewer;
    protected _unregisters: Function[];
    constructor(viewer: Viewer);
    protected reg: (handler: Document | HTMLElement | Window, type: string, listener: (event: any) => void) => void;
    /**
     * Register handler to related browser events
     * Prevents double registrations
     */
    register(): void;
    protected addListeners(): void;
    /**
     * Unregister handler from related browser events
     * Prevents double unregistration
     */
    unregister(): void;
    /**
     * Reset handler states such as button down, drag, etc.
     */
    reset(): void;
}
