import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
interface Props {
    apiKey: string;
    center?: {
        lat: number;
        lng: number;
    };
    zoom?: number;
    trackMode?: boolean;
    showTrackPanel?: boolean;
    enableHeatmap?: boolean;
    enableCluster?: boolean;
    clusterCustomStyle?: boolean;
}
interface LatLng {
    lat: number;
    lng: number;
}
interface TrackPoint extends LatLng {
    direction: number;
    speed?: number;
    time?: string;
}
interface MarkerData {
    id: string;
    position: LatLng;
    styleId?: string;
    properties?: Record<string, any>;
    content?: string;
}
interface PolylineData {
    id: string;
    path: LatLng[];
    styleId?: string;
    color?: string;
    width?: number;
}
interface PolygonData {
    id: string;
    paths: LatLng[][];
    styleId?: string;
    fillColor?: string;
    strokeColor?: string;
}
declare var __VLS_1: {
    map: any;
    TMap: any;
    isMapReady: boolean;
    trackInfo: {
        currentIndex: number;
        totalPoints: number;
        totalDistance: number;
        remainingDistance: number;
        progressPercent: number;
        isPlaying: boolean;
    };
    methods: {
        addMarker: (marker: MarkerData) => void;
        addMarkers: (newMarkers: MarkerData[]) => void;
        removeMarker: (markerId: string) => void;
        removeAllMarkers: () => void;
        addPolyline: (polyline: PolylineData) => void;
        addPolylines: (newPolylines: PolylineData[]) => void;
        removePolyline: (polylineId: string) => void;
        removeAllPolylines: () => void;
        addPolygon: (polygon: PolygonData) => void;
        addPolygons: (newPolygons: PolygonData[]) => void;
        removePolygon: (polygonId: string) => void;
        removeAllPolygons: () => void;
        setTrackPoints: (points: TrackPoint[], applyCorrection?: boolean) => void;
        setTrackPointsWithCorrection: (points: TrackPoint[]) => void;
        playTrack: () => void;
        pauseTrack: () => void;
        stopTrack: () => void;
        resetTrack: () => void;
        seekToPosition: (index: number) => void;
        toggleHeatmap: () => void;
        toggleCluster: () => void;
        reverseGeocode: (lat: number, lng: number) => Promise<any>;
        fitBounds: (points: LatLng[], padding?: number) => void;
        panTo: (lat: number, lng: number) => void;
        getCenter: () => LatLng;
        getZoom: () => number;
        setZoom: (zoom: number) => void;
        showInfoWindow: (position: LatLng, content: string | HTMLElement) => void;
        closeInfoWindow: () => void;
        initMap: () => void;
    };
}, __VLS_3: {
    isOpen: boolean;
    position: {
        lat: number;
        lng: number;
    };
    data: any;
    closePopup: () => void;
};
type __VLS_Slots = {} & {
    customUI?: (props: typeof __VLS_1) => any;
} & {
    popup?: (props: typeof __VLS_3) => any;
};
declare const _default: __VLS_WithSlots< DefineComponent<Props, {
    addMarker: (marker: MarkerData) => void;
    addMarkers: (newMarkers: MarkerData[]) => void;
    removeMarker: (markerId: string) => void;
    removeAllMarkers: () => void;
    addPolyline: (polyline: PolylineData) => void;
    addPolylines: (newPolylines: PolylineData[]) => void;
    removePolyline: (polylineId: string) => void;
    removeAllPolylines: () => void;
    addPolygon: (polygon: PolygonData) => void;
    addPolygons: (newPolygons: PolygonData[]) => void;
    removePolygon: (polygonId: string) => void;
    removeAllPolygons: () => void;
    setTrackPoints: (points: TrackPoint[], applyCorrection?: boolean) => void;
    setTrackPointsWithCorrection: (points: TrackPoint[]) => void;
    playTrack: () => void;
    pauseTrack: () => void;
    stopTrack: () => void;
    resetTrack: () => void;
    seekToPosition: (index: number) => void;
    toggleHeatmap: () => void;
    toggleCluster: () => void;
    reverseGeocode: (lat: number, lng: number) => Promise<any>;
    fitBounds: (points: LatLng[], padding?: number) => void;
    panTo: (lat: number, lng: number) => void;
    getCenter: () => LatLng;
    getZoom: () => number;
    setZoom: (zoom: number) => void;
    showInfoWindow: (position: LatLng, content: string | HTMLElement) => void;
    closeInfoWindow: () => void;
    initMap: () => void;
}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
    markerClick: (marker: any, event: any) => any;
    trackPause: () => any;
    trackStop: () => any;
    trackPointChange: (index: number, point: TrackPoint) => any;
    mapLoaded: (map: any, TMap: any) => any;
    mapClick: (position: {
        lat: number;
        lng: number;
    }, event: any) => any;
    reverseGeocodeSuccess: (result: any, position: {
        lat: number;
        lng: number;
    }) => any;
    trackStart: () => any;
    trackEnd: () => any;
}, string, PublicProps, Readonly<Props> & Readonly<{
    onMarkerClick?: ((marker: any, event: any) => any) | undefined;
    onTrackPause?: (() => any) | undefined;
    onTrackStop?: (() => any) | undefined;
    onTrackPointChange?: ((index: number, point: TrackPoint) => any) | undefined;
    onMapLoaded?: ((map: any, TMap: any) => any) | undefined;
    onMapClick?: ((position: {
        lat: number;
        lng: number;
    }, event: any) => any) | undefined;
    onReverseGeocodeSuccess?: ((result: any, position: {
        lat: number;
        lng: number;
    }) => any) | undefined;
    onTrackStart?: (() => any) | undefined;
    onTrackEnd?: (() => any) | undefined;
}>, {
    zoom: number;
    center: {
        lat: number;
        lng: number;
    };
    trackMode: boolean;
    showTrackPanel: boolean;
    enableHeatmap: boolean;
    enableCluster: boolean;
    clusterCustomStyle: boolean;
}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>, __VLS_Slots>;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
