/// <reference path="platforms/ios/Mapbox.d.ts" />
import { AddExtrusionOptions, AddGeoJsonClusteredOptions, AddPolygonOptions, AddPolylineOptions, AddSourceOptions, AnimateCameraOptions, DeleteOfflineRegionOptions, DownloadOfflineRegionOptions, Feature, LatLng, ListOfflineRegionsOptions, MapboxApi, MapboxCommon, MapboxMarker, MapboxViewBase, MapStyle, OfflineRegion, QueryRenderedFeaturesOptions, SetCenterOptions, SetTiltOptions, SetViewportOptions, SetZoomLevelOptions, ShowOptions, TrackUserOptions, UserLocation, UserLocationCameraMode, Viewport } from "./mapbox.common";
export { MapStyle };
export declare class MapboxView extends MapboxViewBase {
    private nativeMapView;
    private delegate;
    private settings;
    private initialized;
    private initCountHack;
    setConfig(settings: any): void;
    getNativeMapView(): any;
    createNativeView(): Object;
    initNativeView(): void;
    disposeNativeView(): Promise<void>;
    getMapboxApi(): any;
    initMap(): void;
    onLayout(left: number, top: number, right: number, bottom: number): void;
}
export declare class CustomUserLocationAnnotationView extends MGLUserLocationAnnotationView implements MGLUserLocationAnnotationView {
    size: number;
    dot: CALayer;
    arrow: CAShapeLayer;
    private userLocationRenderMode;
    private renderModeChanged;
    init(): this;
    update(): void;
    drawTrackingLocationMarker(): void;
    drawNonTrackingLocationMarker(): void;
    drawTrackingDot(): void;
    drawNonTrackingDot(): void;
    drawArrow(): void;
    updateHeading(): void;
    arrowPath(): any;
    changeUserLocationRenderMode(renderMode: any): void;
}
export declare class Mapbox extends MapboxCommon implements MapboxApi {
    private _mapboxMapInstance;
    private _mapboxViewInstance;
    private circles;
    private lines;
    private eventCallbacks;
    private userLocationRenderMode;
    setMapboxMapInstance(mapboxMapInstance: any): void;
    setMapboxViewInstance(mapboxViewInstance: any): void;
    initEventHandlerShim(settings: any, mapboxNativeViewInstance: any): void;
    onMapEvent(eventName: any, id: any, callback: any, nativeMapView?: any): void;
    offMapEvent(eventName: any, id: any, nativeMapView?: any): void;
    private checkForCircleClickEvent;
    show(options: ShowOptions): Promise<any>;
    hide(): Promise<any>;
    unhide(): Promise<any>;
    destroy(nativeMap?: any): Promise<any>;
    onStart(nativeMap?: any): Promise<any>;
    onResume(nativeMap?: any): Promise<any>;
    onPause(nativeMap?: any): Promise<any>;
    onStop(nativeMap?: any): Promise<any>;
    onLowMemory(nativeMap?: any): Promise<any>;
    onDestroy(nativeMap?: any): Promise<any>;
    setMapStyle(style: string | MapStyle, nativeMap?: any): Promise<any>;
    addMarkers(markers: MapboxMarker[], nativeMap?: any): Promise<any>;
    removeMarkers(ids?: any, nativeMap?: any): Promise<any>;
    setCenter(options: SetCenterOptions, nativeMap?: any): Promise<any>;
    getCenter(nativeMap?: any): Promise<LatLng>;
    setZoomLevel(options: SetZoomLevelOptions, nativeMap?: any): Promise<any>;
    getZoomLevel(nativeMap?: any): Promise<number>;
    setTilt(options: SetTiltOptions, nativeMap?: any): Promise<any>;
    getTilt(nativeMap?: any): Promise<number>;
    getUserLocation(nativeMap?: any): Promise<UserLocation>;
    _stringToCameraMode(mode: UserLocationCameraMode): any;
    _stringToRenderMode(mode: any): any;
    showUserLocationMarker(options: any, nativeMap?: any): Promise<void>;
    hideUserLocationMarker(nativeMap?: any): Promise<void>;
    changeUserLocationMarkerMode(renderModeString: any, cameraModeString: UserLocationCameraMode, nativeMap?: any): Promise<any>;
    forceUserLocationUpdate(location: any, nativeMap?: any): void;
    queryRenderedFeatures(options: QueryRenderedFeaturesOptions, nativeMap?: any): Promise<Array<Feature>>;
    addPolygon(options: AddPolygonOptions, nativeMap?: any): Promise<any>;
    addPolyline(options: AddPolylineOptions, nativeMap?: any): Promise<any>;
    private removePolyById;
    private removePolys;
    removePolygons(ids?: Array<any>, nativeMap?: any): Promise<any>;
    removePolylines(ids?: Array<any>, nativeMap?: any): Promise<any>;
    animateCamera(options: AnimateCameraOptions, nativeMap?: any): Promise<any>;
    setOnMapClickListener(listener: (data: LatLng) => void, nativeMap?: any): Promise<any>;
    setOnMapLongClickListener(listener: (data: LatLng) => void, nativeMap?: any): Promise<any>;
    setOnScrollListener(listener: (data?: LatLng) => void, nativeMap?: any): Promise<void>;
    setOnMoveBeginListener(listener: (data?: LatLng) => void, nativeMap?: any): Promise<void>;
    setOnFlingListener(listener: () => void, nativeMap?: any): Promise<any>;
    setOnCameraMoveListener(listener: () => void, nativeMap?: any): Promise<any>;
    setOnCameraMoveCancelListener(listener: () => void, nativeMap?: any): Promise<any>;
    setOnCameraIdleListener(listener: () => void, nativeMap?: any): Promise<any>;
    getViewport(nativeMap?: any): Promise<Viewport>;
    setViewport(options: SetViewportOptions, nativeMap?: any): Promise<any>;
    downloadOfflineRegion(options: DownloadOfflineRegionOptions): Promise<any>;
    listOfflineRegions(options?: ListOfflineRegionsOptions): Promise<OfflineRegion[]>;
    deleteOfflineRegion(options: DeleteOfflineRegionOptions): Promise<any>;
    addExtrusion(options: AddExtrusionOptions, nativeMap?: any): Promise<any>;
    addSource(id: string, options: AddSourceOptions, nativeMap?: any): Promise<any>;
    removeSource(id: string, nativeMap?: any): Promise<any>;
    addLayer(style: any, nativeMapView?: any): Promise<any>;
    removeLayer(id: string, nativeMapViewInstance: any): Promise<{}>;
    private addLineLayer;
    addLinePoint(id: string, lnglat: any, nativeMapView?: any): Promise<any>;
    private addCircleLayer;
    addGeoJsonClustered(options: AddGeoJsonClusteredOptions, nativeMap?: any): Promise<any>;
    trackUser(options: TrackUserOptions, nativeMap?: any): Promise<void>;
}
