import { LayerGroupEvent } from "../event";
import Layer from "./Layer";
import Viewer from "../viewer/Viewer";
/**
 * 图层组，将图层按一定的逻辑分组，方便统一管理
 * @example
 * ```ts
 * let layerGroup = new BC.LayerGroup('id')
 * viewer.addLayerGroup(layerGroup)
 * let layer = new BC.VectorLayer('layer')
 * layerGroup.addLayer(layer)
 * ```
 */
declare class LayerGroup {
    private _id;
    private _cache;
    private _show;
    private _viewer;
    private _layerGroupEvent;
    private _state;
    /**
     * @param id 图层组唯一标识
     */
    constructor(id: string);
    /**
     * 唯一标识
     */
    get id(): string;
    /**
     * 类型
     */
    get type(): string;
    /**
     * 是否显示
     */
    set show(show: boolean);
    get show(): boolean;
    get layerGroupEvent(): LayerGroupEvent;
    /**
     * 状态
     */
    get state(): string;
    /**
     *
     * @param viewer
     */
    private _onAdd;
    /**
     *
     * @private
     */
    private _onRemove;
    /**
     * 添加图层
     * @param layer
     * @returns {LayerGroup}
     */
    addLayer(layer: Layer): LayerGroup;
    /**
     * 删除图层
     * @param layer
     * @returns {LayerGroup}
     */
    removeLayer(layer: Layer): LayerGroup;
    /**
     * 获取图层
     * @param id
     * @returns 图层
     */
    getLayer(id: string): Layer | undefined;
    /**
     * 获取所有图层，不包括地图
     * @returns 图层数组
     */
    getLayers(): Layer[];
    /**
     * 添加图层到场景
     * @param viewer
     * @returns {LayerGroup}
     */
    addTo(viewer: Viewer): this;
    /**
     * 删除图层组
     * @returns
     */
    remove(): LayerGroup;
}
export default LayerGroup;
