/// <reference types="amap-js-api" />
import Vue, { VueConstructor } from 'vue';
export interface MarkerClustererContext {
    markers: Map<any, AMap.Marker>;
    clusters: WeakMap<any, any>;
    MarkerRenderer: VueConstructor;
    ClusterRenderer: VueConstructor;
    marker: Vue;
    cluster: Vue;
    dummy: Vue;
}
export interface MarkerClustererStyle {
    url: string;
    size: number[];
    offset?: number;
    imageOffset?: number;
    textColor?: string;
    textSize?: number;
}
declare const _default: import("vue/types/vue").ExtendedVue<{
    extraOptions: any;
} & {
    context: import("../../types/amap-vue").AmapComponentContext;
    component: AMap.Component;
    map: AMap.Map;
    wrapper: {
        ready: boolean;
    } & {
        _clear(): void;
        _getContainer(visible: boolean): import("../../types/amap-vue").ElementWithAmap;
        clearMap: (this: Vue) => void;
        clearInfoWindow: (this: Vue) => void;
        setCenter: (this: Vue, a: number[]) => void;
        setCity: (this: Vue, a: string) => void;
        getBounds(): number[][];
        getSize: (this: Vue) => AMap.Size;
        getResolution: (this: Vue) => number;
        setFitView: (targets?: Vue | Vue[] | undefined, imme?: boolean | undefined, avoid?: number[] | undefined, maxZoom?: number | undefined) => Promise<void>;
        lngLatToContainer(lnglat: any): number[];
    } & {
        context: any;
        map: any;
    } & {
        cacheKey: any;
        sync: any;
        showIndoorMap: any;
        resizeEnable: any;
        dragEnable: any;
        pitchEnable: any;
        rotateEnable: any;
        zoomEnable: any;
        doubleClickZoom: any;
        keyboardEnable: any;
        jogEnable: any;
        scrollWheel: any;
        animateEnable: any;
        isHotspot: any;
        touchEnable: any;
        viewMode: any;
        showBuildingBlock: any;
        expandZoomRange: any;
        zooms: any;
        zoom: any;
        center: any;
        pitch: any;
        rotation: any;
        lang: any;
        mapStyle: any;
        features: any;
        skyColor: any;
        extraOptions: any;
    } & Vue;
    AMap: AMap.AMapGlobal;
} & Record<never, any> & Vue, {
    _mcc: MarkerClustererContext;
}, {
    _getKey(point: any, i: number): any;
    _getPosition(point: any): any;
    _onDataChange(): Promise<void>;
    _renderMarkerContent(point: any): HTMLElement | undefined;
    _getMarker(point: any, i: number): AMap.Marker<any>;
    _renderCluster(context: AMap.MarkerClusterer.Context): void;
}, unknown, {
    data: any[];
    keyProp: string | Function;
    positionProp: string | Function;
    gridSize: number;
    minClusterSize: number;
    maxZoom: number;
    averageCenter: boolean;
    styles: MarkerClustererStyle[];
    zoomOnClick: boolean;
    markerOptions: Function;
    clusterOptions: Function;
}>;
export default _default;
