import { IMarker } from '@antv/l7-core';
import { EventEmitter } from 'eventemitter3';
import { Container } from 'inversify';
import { IMarkerLayerOption } from './interface';
export default class MarkerLayer extends EventEmitter {
    private markers;
    private markerLayerOption;
    private clusterIndex;
    private points;
    private clusterMarkers;
    private mapsService;
    private scene;
    private zoom;
    private bbox;
    constructor(option?: Partial<IMarkerLayerOption>);
    getDefault(): {
        cluster: boolean;
        clusterOption: {
            radius: number;
            maxZoom: number;
            minZoom: number;
            zoom: number;
            style: {};
            className: string;
        };
    };
    addTo(scene: Container): this;
    addMarker(marker: IMarker): void;
    removeMarker(marker: IMarker): void;
    /**
     * 隐藏 marker 在每个 marker 上单独修改属性而不是在 markerContainer 上修改（在 markerContainer 修改会有用户在场景加载完之前调用失败的问题）
     */
    hide(): void;
    /**
     * 显示 marker
     */
    show(): void;
    getMarkers(): IMarker[];
    addMarkers(): void;
    clear(): void;
    destroy(): void;
    private addPoint;
    private initCluster;
    private getClusterMarker;
    private getLeaves;
    private clusterMarker;
    private normalMarker;
    private update;
    private generateElement;
}
