/// <reference types="react" />
import * as MapboxGl from 'mapbox-gl';
export declare type MapEvent = (map: MapboxGl.Map, evt: React.SyntheticEvent<any>) => void;
export interface Events {
    onStyleLoad?: MapEvent;
    onResize?: MapEvent;
    onDblClick?: MapEvent;
    onClick?: MapEvent;
    onMouseMove?: MapEvent;
    onMouseOut?: MapEvent;
    onMoveStart?: MapEvent;
    onMove?: MapEvent;
    onMoveEnd?: MapEvent;
    onMouseDown?: MapEvent;
    onMouseUp?: MapEvent;
    onDragStart?: MapEvent;
    onDragEnd?: MapEvent;
    onDrag?: MapEvent;
    onZoomStart?: MapEvent;
    onZoom?: MapEvent;
    onZoomEnd?: MapEvent;
    onPitch?: MapEvent;
    onPitchStart?: MapEvent;
    onPitchEnd?: MapEvent;
    onWebGlContextLost?: MapEvent;
    onWebGlContextRestored?: MapEvent;
    onRemove?: MapEvent;
    onContextMenu?: MapEvent;
    onRender?: MapEvent;
    onError?: MapEvent;
    onSourceData?: MapEvent;
    onDataLoading?: MapEvent;
    onStyleDataLoading?: MapEvent;
    onStyleImageMissing?: MapEvent;
    onTouchCancel?: MapEvent;
    onData?: MapEvent;
    onSourceDataLoading?: MapEvent;
    onTouchMove?: MapEvent;
    onTouchEnd?: MapEvent;
    onTouchStart?: MapEvent;
    onStyleData?: MapEvent;
    onBoxZoomStart?: MapEvent;
    onBoxZoomEnd?: MapEvent;
    onBoxZoomCancel?: MapEvent;
    onRotateStart?: MapEvent;
    onRotate?: MapEvent;
    onRotateEnd?: MapEvent;
}
export declare type EventMapping = {
    [T in keyof Events]: string;
};
export declare const events: EventMapping;
export declare type Listeners = {
    [T in keyof Events]: (evt: React.SyntheticEvent<any>) => void;
};
export declare const listenEvents: (partialEvents: EventMapping, props: Partial<Events>, map: MapboxGl.Map) => Listeners;
export declare const updateEvents: (listeners: Listeners, currentProps: Partial<Events>, map: MapboxGl.Map) => {
    onStyleLoad?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onResize?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onDblClick?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onClick?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onMouseMove?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onMouseOut?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onMoveStart?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onMove?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onMoveEnd?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onMouseDown?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onMouseUp?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onDragStart?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onDragEnd?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onDrag?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onZoomStart?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onZoom?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onZoomEnd?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onPitch?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onPitchStart?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onPitchEnd?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onWebGlContextLost?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onWebGlContextRestored?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onRemove?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onContextMenu?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onRender?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onError?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onSourceData?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onDataLoading?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onStyleDataLoading?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onStyleImageMissing?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onTouchCancel?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onData?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onSourceDataLoading?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onTouchMove?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onTouchEnd?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onTouchStart?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onStyleData?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onBoxZoomStart?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onBoxZoomEnd?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onBoxZoomCancel?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onRotateStart?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onRotate?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
    onRotateEnd?: ((evt: import("react").SyntheticEvent<any, Event>) => void) | undefined;
};
