import { EarthMap } from '../earthmap';
import { Map } from '../map';
import RenderFrameEvent from './events/render_event';
import { IHandlerResult } from './IHandler';
export type InputEvent = MouseEvent | TouchEvent | KeyboardEvent | WheelEvent;
export interface IHandlerOptions {
    interactive: boolean;
    boxZoom: boolean;
    dragRotate: boolean;
    dragPan: boolean;
    keyboard: boolean;
    doubleClickZoom: boolean;
    touchZoomRotate: boolean;
    touchPitch: boolean;
    trackResize: boolean;
    renderWorldCopies: boolean;
    bearingSnap: number;
    clickTolerance: number;
    pitchWithRotate: boolean;
    pitchEnabled: boolean;
    rotateEnabled: boolean;
}
declare class HandlerManager {
    private map;
    private el;
    private handlers;
    private eventsInProgress;
    private frameId;
    private inertia;
    private bearingSnap;
    private handlersById;
    private updatingCamera;
    private changes;
    private previousActiveHandlers;
    private bearingChanged;
    private rotateEnabled;
    private pitchEnabled;
    private listeners;
    constructor(map: Map | EarthMap, options: IHandlerOptions);
    destroy(): void;
    stop(): void;
    isActive(): boolean;
    isZooming(): boolean;
    isRotating(): boolean;
    isMoving(): boolean;
    handleWindowEvent: (e: InputEvent) => void;
    handleEvent: (e: InputEvent | RenderFrameEvent, eventName?: string) => void;
    mergeIHandlerResult(mergedIHandlerResult: IHandlerResult, eventsInProgress: {
        [key: string]: any;
    }, HandlerResult: IHandlerResult, name: string, e?: InputEvent): void;
    triggerRenderFrame(): void;
    private addDefaultHandlers;
    private add;
    private blockedByActive;
    private getMapTouches;
    private applyChanges;
    private updateMapTransform;
    private fireEvents;
    private fireEvent;
}
export default HandlerManager;
