import { EarthMap } from '../earthmap';
import Point from '../geo/point';
import { Map } from '../map';
export interface IHandlerResult {
    panDelta?: Point;
    zoomDelta?: number;
    bearingDelta?: number;
    pitchDelta?: number;
    around?: Point | null;
    pinchAround?: Point | null;
    cameraAnimation?: (map: Map | EarthMap) => any;
    originalEvent?: any;
    needsRenderFrame?: boolean;
    noInertia?: boolean;
}
export interface IHandler {
    touchstart?: (e: TouchEvent, points: Point[], mapTouches: Touch[]) => IHandlerResult | void;
    touchmove?: (e: TouchEvent, points: Point[], mapTouches: Touch[]) => IHandlerResult | void;
    touchend?: (e: TouchEvent, points: Point[], mapTouches: Touch[]) => IHandlerResult | void;
    touchcancel?: (e: TouchEvent, points: Point[], mapTouches: Touch[]) => IHandlerResult | void;
    mousedown?: (e: MouseEvent, point: Point) => IHandlerResult | void;
    mousemove?: (e: MouseEvent, point: Point) => IHandlerResult | void;
    mouseup?: (e: MouseEvent, point: Point) => IHandlerResult | void;
    dblclick?: (e: MouseEvent, point: Point) => IHandlerResult | void;
    wheel?: (e: WheelEvent, point: Point) => IHandlerResult | void;
    keydown?: (e: KeyboardEvent) => IHandlerResult | void;
    keyup?: (e: KeyboardEvent) => IHandlerResult | void;
    renderFrame?: () => IHandlerResult | void;
    enable(options?: any): void;
    disable(): void;
    isEnabled(): boolean;
    isActive(): boolean;
    reset(): void;
}
