/**
 * @module viw-webgl-viewer/inputs
 */
/**
 * 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 BaseInputHandler {
    protected _canvas: HTMLCanvasElement;
    protected _disconnect: Function[];
    constructor(canvas: HTMLCanvasElement);
    protected reg<T extends Event>(element: Document | HTMLElement | Window, eventType: string, callback: (event: T) => 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;
}
