import { Map as OLMap } from 'ol';
import { LayerConfig } from '../types';
import { ILayerHandler } from './layers/index';
import { MapStorage } from './storage';
import { LayerEventBus } from './EventBus';

/**
 * 重构后的图层管理器
 * 使用图层工厂模式和专门的图层处理器
 * 支持实例隔离，避免多个地图组件实例之间的相互影响
 */
export declare class LayerManager {
    private map;
    private layerHandlers;
    private layerConfigs;
    private pendingLayerConfigs;
    private eventBus;
    private storage;
    private baseLayerIds;
    private sharedLayerGroups;
    constructor(map: OLMap, eventBus: LayerEventBus, storage: MapStorage);
    getEventBus(): LayerEventBus;
    /**
     * 添加图层（支持按需加载）
     */
    addLayer(config: Omit<LayerConfig, "layer"> & {
        id?: string;
    }): Promise<boolean>;
    private mergeExistingLayerConfig;
    /**
     * 处理图层的locationAnimation配置
     */
    private handleLocationAnimation;
    /**
     * 执行定位动画
     */
    private performLocationAnimation;
    /**
     * 设置共享图层样式函数
     */
    private setupSharedLayerStyle;
    /**
     * 更新共享图层状态（处理WMS参数更新或Vector重绘）
     */
    private updateSharedLayerState;
    /**
     * 检查要素是否匹配过滤条件
     */
    private checkFeatureFilter;
    /**
     * 获取缓动函数
     */
    private getEasingFunction;
    /**
     * 坐标转换辅助方法
     */
    private transformCoordinate;
    /**
     * 异步添加图层
     */
    private addLayerAsync;
    /**
     * 添加图层组
     */
    private addLayerGroup;
    /**
     * 移除图层（支持移除未加载的图层配置）
     */
    removeLayer(layerId: string): boolean;
    /**
     * 获取所有图层配置（包括已加载和未加载的）
     */
    getAllLayerConfigs(): LayerConfig[];
    /**
     * 检查图层是否已加载
     */
    isLayerLoaded(layerId: string): boolean;
    /**
     * 获取图层配置（无论是否已加载）
     */
    getLayerConfig(layerId: string): LayerConfig | undefined;
    /**
     * 获取图层处理器
     */
    getLayerHandler(layerId: string): ILayerHandler | undefined;
    /**
     * 设置底图图层ID列表（用于底图互斥判断）
     */
    setBaseLayerIds(baseLayerIds: string[]): void;
    /**
     * 判断图层是否为底图
     */
    private isBasemapLayer;
    /**
     * 设置图层可见性（支持按需加载）
     */
    setLayerVisible(layerId: string, visible: boolean): Promise<boolean>;
    /**
     * 设置组图层的可见性（同时控制所有子图层）
     */
    private setGroupLayerVisible;
    /**
     * 隐藏除指定底图外的其他底图（底图互斥逻辑）
     */
    private hideOtherBasemaps;
    /**
     * 初始化时的底图互斥处理（处理配置中多个底图都设置为visible的情况）
     */
    private hideOtherBasemapsOnInit;
    /**
     * 设置图层透明度
     */
    setLayerOpacity(layerId: string, opacity: number): boolean;
    /**
     * 设置图层层级
     */
    setLayerZIndex(layerId: string, zIndex: number): void;
    /**
     * 根据加载顺序设置所有图层的层级
     * @param baseIndex 基础索引值，默认为1
     * @param increment 递增值，默认为1
     */
    setLayersZIndexByOrder(baseIndex?: number, increment?: number): void;
    /**
     * 重新排列图层层级
     * @param layerIds 图层ID数组，按照期望的层级顺序排列（第一个元素为最上层）
     * @param baseIndex 基础索引值，默认为1
     */
    reorderLayers(layerIds: string[], baseIndex?: number): void;
    /**
     * 获取图层的当前层级
     */
    getLayerZIndex(layerId: string): number | undefined;
    refreshLayer(layerId: string, options?: {
        params?: Record<string, any>;
        body?: Record<string, any> | string;
    }): Promise<boolean>;
    updateLayerRequestParams(layerId: string, params: Record<string, any>): boolean;
    /**
     * 更新图层配置
     */
    updateLayerConfig(layerId: string, newConfig: Partial<LayerConfig>): boolean;
    /**
     * 添加GeoServer WMS图层的便捷方法
     */
    addGeoServerLayer(url: string, name: string, options?: {
        id?: string;
        type?: "tile" | "wms";
        visible?: boolean;
        opacity?: number;
        zIndex?: number;
        layers?: string;
    }): Promise<boolean>;
    /**
     * 批量添加图层
     */
    addLayers(configs: Array<Omit<LayerConfig, "layer"> & {
        id?: string;
    }>): Promise<boolean[]>;
    /**
     * 清空所有图层
     */
    clearAllLayers(): void;
    /**
     * 获取支持的图层类型
     */
    getSupportedLayerTypes(): string[];
    /**
     * 检查是否支持指定的图层类型
     */
    isLayerTypeSupported(type: string): boolean;
    /**
     * 加载图层配置元数据（不创建图层实例）
     */
    private loadLayerConfigsMetadata;
    /**
     * 按需加载图层（原loadLayerConfigs的单个图层版本）
     */
    private loadLayerOnDemand;
    /**
     * 保存图层配置（包括已加载和未加载的）
     */
    private saveLayerConfigs;
    /**
     * 设置图层样式
     */
    setLayerStyle(layerId: string, style: LayerConfig["style"]): boolean;
    /**
     * 清除图层样式
     */
    clearLayerStyles(layerId: string): boolean;
    /**
     * 根据坐标获取图层要素信息（用于tooltip）
     */
    getFeatureInfoAtCoordinate(coordinate: [number, number], options?: {
        layers?: string[];
        infoFormat?: string;
        featureCount?: number;
    }): Promise<any[]>;
    /**
     * 销毁图层管理器
     */
    destroy(): void;
}
//# sourceMappingURL=LayerManager.d.ts.map