/// <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, Point, QueryRenderedFeaturesOptions, SetCenterOptions, SetTiltOptions, SetViewportOptions, SetZoomLevelOptions, ShowOptions, TrackUserOptions, UserLocation, UserLocationCameraMode, Viewport } from "./mapbox.common";
import { ImageSource } from "tns-core-modules/image-source";
export { MapStyle };
export declare namespace BundleKludge {
    var bundle: {
        test: string;
    };
}
export declare class MapboxView extends MapboxViewBase {
    private nativeMapView;
    private settings;
    private gcFixIndex;
    private initialized;
    constructor();
    setConfig(settings: any): void;
    gcFixInit(): void;
    gcFix(key: string, ref: any): void;
    gcClear(): void;
    getNativeMapView(): any;
    getMapboxApi(): any;
    createNativeView(): Object;
    initNativeView(): void;
    disposeNativeView(): Promise<void>;
    private initMap;
    protected onDisableScrollChanged(oldValue: boolean, newValue: boolean): void;
}
export declare class Mapbox extends MapboxCommon implements MapboxApi {
    private _mapboxMapInstance;
    private _mapboxViewInstance;
    private _activity;
    private _locationComponent;
    private _permissionsManager;
    private _accessToken;
    private circleManager;
    private lineManager;
    private symbolManager;
    private _offlineManager;
    private onDidFailLoadingMapListener;
    private onDidFinishLoadingMapListener;
    private onMapReadyCallback;
    private onDidFinishLoadingStyleListener;
    private onAnnotationClickListener;
    private onMapClickListener;
    private onMapLongClickListener;
    private onMoveListener;
    private onScrollListener;
    private onFlingListener;
    private onCameraMoveListener;
    private onCameraMoveCancelListener;
    private onCameraIdleListener;
    private onLocationClickListener;
    private _markers;
    private _polylines;
    private _polygons;
    private circles;
    private lines;
    private eventCallbacks;
    _markerIconDownloadCache: any[];
    constructor();
    gcFix(key: string, ref: any): void;
    gcClear(): void;
    setMapboxViewInstance(mapboxViewInstance: any): void;
    setMapboxMapInstance(mapboxMapInstance: any): void;
    show(options: ShowOptions): Promise<any>;
    hide(): Promise<any>;
    unhide(): Promise<any>;
    destroy(nativeMap?: any): Promise<any>;
    private clearEventListeners;
    onStart(nativeMap?: any): Promise<any>;
    onResume(nativeMapViewInstance?: any): Promise<any>;
    onPause(nativeMapViewInstance?: any): Promise<any>;
    onStop(nativeMap?: any): Promise<any>;
    onLowMemory(nativeMap?: any): Promise<any>;
    onDestroy(nativeMap?: any): Promise<any>;
    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 handleLineClickEvent;
    private checkForCircleClickEvent;
    private addClickableLineOverlay;
    hasFineLocationPermission(): Promise<boolean>;
    requestFineLocationPermission(): Promise<any>;
    onRequestPermissionsResults(requestCode: any, permissions: any, grantResults: any): void;
    setMapStyle(style: string | MapStyle, nativeMapViewInstance?: any): Promise<any>;
    addMarkers(markers: MapboxMarker[], nativeMap?: any): Promise<any>;
    removeMarkers(ids?: any, nativeMap?: any): Promise<any>;
    _addMarkers(markers: MapboxMarker[], nativeMap?: any): void;
    _removeMarkers(ids?: any, nativeMap?: any): void;
    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(): Promise<UserLocation>;
    queryRenderedFeatures(options: QueryRenderedFeaturesOptions, nativeMap?: any): Promise<Array<Feature>>;
    addPolygon(options: AddPolygonOptions, nativeMap?: any): Promise<any>;
    addPolyline(options: AddPolylineOptions, nativeMap?: any): string;
    removePolygons(ids?: Array<any>, nativeMap?: any): Promise<any>;
    removePolylines(ids?: Array<any>, nativeMap?: any): void;
    updatePolyline(id: string, newPoints: Array<LatLng>, nativeMap?: any): void;
    animateCamera(options: AnimateCameraOptions, nativeMap?: any): Promise<any>;
    setOnMapClickListener(listener: (data: LatLng) => void, nativeMap?: MapboxView): Promise<any>;
    setOnMapLongClickListener(listener: (data: LatLng) => void, nativeMap?: any): Promise<any>;
    setOnMoveBeginListener(listener: (data?: LatLng) => void, nativeMap?: any): Promise<void>;
    setOnScrollListener(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>;
    _getOfflineManager(): 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<unknown>;
    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>;
    getTrackingMode(nativeMap?: any): UserLocationCameraMode;
    private static getAndroidColor;
    _getMapStyle(input: any): any;
    _getMapboxMapOptions(settings: any): any;
    _convertCameraMode(mode: any): UserLocationCameraMode;
    _stringToCameraMode(mode: UserLocationCameraMode): any;
    _stringToRenderMode(mode: any): any;
    _fineLocationPermissionGranted(): boolean;
    _getRegionName(offlineRegion: 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): Promise<void>;
    _getClickedMarkerDetails(clicked: any): any;
    _downloadImage(marker: any): Promise<unknown>;
    _downloadMarkerImages(markers: any): Promise<any[]>;
    isScrollingEnabled(nativeMap?: any): Promise<boolean>;
    setScrollingEnabled(enabled: boolean, nativeMap?: any): Promise<any>;
    convertToMapCoordinate(point: Point, nativeMap?: any): Promise<LatLng>;
    convertToOnScreenCoordinate(coordinate: LatLng, nativeMap?: any): Promise<Point>;
    getDistanceBetween(from: LatLng, to: LatLng, nativeMap?: any): Promise<number>;
    takeSnapshot(nativeMap?: any): Promise<ImageSource>;
    private addCircleAnnotation;
    private addLineAnnotation;
    private testLineAnnotation;
    getTestCoords(): number[][];
}
