/// <reference types="amap-js-api" />
import Vue from 'vue';
declare type OptionSetter = (this: Vue, target: AMap.Map | AMap.Component, value: any) => void;
export declare function makeOptionSetter(key: string): OptionSetter;
declare const geometry: import("vue/types/vue").ExtendedVue<{
    show: (this: Vue) => void;
    hide: (this: Vue) => void;
    getExtData: any;
} & {
    visible: boolean;
    cursor: string;
    zIndex: number;
    bubble: boolean;
    clickable: boolean;
    draggable: boolean;
    extData: any;
} & {
    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, unknown, {
    getBounds: any;
}, unknown, {
    strokeColor: string;
    strokeOpacity: number;
    strokeWeight: number;
    strokeStyle: AMap.StrokeStyle;
    strokeDasharray: number[];
}>;
export default geometry;
export declare const plane: import("vue/types/vue").ExtendedVue<{
    getBounds: any;
} & {
    strokeColor: string;
    strokeOpacity: number;
    strokeWeight: number;
    strokeStyle: AMap.StrokeStyle;
    strokeDasharray: number[];
} & {
    show: (this: Vue) => void;
    hide: (this: Vue) => void;
    getExtData: any;
} & {
    visible: boolean;
    cursor: string;
    zIndex: number;
    bubble: boolean;
    clickable: boolean;
    draggable: boolean;
    extData: any;
} & {
    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, unknown, {
    contains: (this: Vue, a: any) => boolean;
}, unknown, {
    fillColor: string;
    fillOpacity: number;
}>;
export declare const line: import("vue/types/vue").ExtendedVue<{
    getBounds: any;
} & {
    strokeColor: string;
    strokeOpacity: number;
    strokeWeight: number;
    strokeStyle: AMap.StrokeStyle;
    strokeDasharray: number[];
} & {
    show: (this: Vue) => void;
    hide: (this: Vue) => void;
    getExtData: any;
} & {
    visible: boolean;
    cursor: string;
    zIndex: number;
    bubble: boolean;
    clickable: boolean;
    draggable: boolean;
    extData: any;
} & {
    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, unknown, {
    getLength: (this: Vue) => number;
}, unknown, {
    lineJoin: AMap.StrokeLineJoin;
    lineCap: AMap.StrokeLineCap;
    showDir: boolean;
    dirColor: string;
    dirImg: string;
    isOutline: boolean;
    outlineColor: string;
    borderWeight: number;
}>;
