/// <reference types="@types/amap-js-api" />
import { NgZone } from '@angular/core';
import { AMapService } from '../../shared/amap.service';
import { PluginLoaderService } from '../../shared/plugin-loader.service';
import { LoggerService } from '../../shared/logger/logger.service';
import { Getter } from '../../base/interfaces';
export declare namespace AMapMarkerClusterer {
    interface StyleObject {
        url?: string;
        size?: AMap.Size;
        offset?: AMap.Pixel;
        imageOffset?: AMap.Pixel;
        textColor?: string;
        textSize?: number;
    }
    interface Options {
        /**
         * 聚合计算时网格的像素大小，默认60
         */
        gridSize?: number;
        /**
         * 聚合的最小数量。默认值为2，即小于2个点则不能成为一个聚合
         */
        minClusterSize?: number;
        /**
         * 最大的聚合级别，大于该级别就不进行相应的聚合。默认值为18
         */
        maxZoom?: number;
        /**
         * 聚合点的图标位置是否是所有聚合内点的中心点。默认为否
         */
        averageCenter?: boolean;
        /**
         * 指定聚合后的点标记的图标样式，可缺省，缺省时为默认样式
         */
        styles?: StyleObject[];
        /**
         * 该方法用来实现聚合点的自定义绘制
         */
        renderClusterMarker?: (obj: {
            count: number;
            markers: AMap.Marker<any>[];
            marker: AMap.Marker<any>;
        }) => void;
        /**
         * 点击聚合点时，是否散开，默认值为：true
         */
        zoomOnClick?: boolean;
    }
}
export declare class AmapMarkerClustererService implements Getter<any> {
    private amaps;
    private plugins;
    private logger;
    private ngZone;
    private markerClusterer;
    private markerClusterer$;
    constructor(amaps: AMapService, plugins: PluginLoaderService, logger: LoggerService, ngZone: NgZone);
    /**
     * 获取点聚合
     */
    get(): import("rxjs").Observable<any>;
    /**
     * 创建点聚合 AMap.MarkerClusterer
     * @param options 选项
     */
    create(options: AMapMarkerClusterer.Options): import("rxjs").Observable<any>;
    /**
     * 销毁点聚合
     */
    destroy(): void;
}
