import { Layer } from 'ol/layer';
import { default as VectorSource } from 'ol/source/Vector';
import { default as Cluster } from 'ol/source/Cluster';
import { BaseLayer } from './BaseLayer';
import { LayerConfig, LayerFilter, FilterOperator } from '../../types';
import { IStyleConfigMap, IPointStyleConfig } from '../styles';

/**
 * 聚合图层处理器
 */
export declare class ClusterLayerHandler extends BaseLayer {
    private clusterStyleConfig?;
    private singleFeatureStyleConfig?;
    private currentFilters;
    private originalFeatures;
    createLayer(): Layer<Cluster>;
    /**
     * 创建矢量数据源
     */
    private createVectorSource;
    /**
     * 应用过滤器（实现基类的抽象方法）
     */
    protected applyFilters(): void;
    /**
     * 检查要素是否符合过滤条件
     */
    private checkFeatureAgainstFilter;
    /**
     * 检查属性过滤条件
     */
    private checkAttributeFilter;
    /**
     * 根据属性过滤要素（便捷方法）
     */
    filterFeaturesByProperty(property: string, value: any, operator?: FilterOperator): void;
    /**
     * 清除所有过滤器
     */
    clearAllFeatureFilters(): void;
    /**
     * 获取当前应用的过滤器
     */
    getCurrentFilters(): LayerFilter[];
    /**
     * 获取原始要素数量（未过滤的）
     */
    getOriginalFeatureCount(): number;
    /**
     * 获取过滤后的要素数量
     */
    getFilteredFeatureCount(): number;
    /**
     * 创建聚合样式函数
     */
    private createClusterStyleFunction;
    /**
     * 解析样式配置
     */
    private parseStyleConfig;
    /**
     * 转换旧的聚类样式配置为新格式
     */
    private convertLegacyClusterStyle;
    /**
     * 转换旧的单个要素样式配置为新格式
     */
    private convertLegacySingleFeatureStyle;
    /**
     * 设置聚合距离
     */
    setDistance(distance: number): void;
    /**
     * 设置最小聚合距离
     */
    setMinDistance(minDistance: number): void;
    /**
     * 获取原始数据源
     */
    getVectorSource(): VectorSource | null;
    /**
     * 添加要素到原始数据源
     */
    addFeatures(features: any[]): void;
    /**
     * 清空要素
     */
    clearFeatures(): void;
    /**
     * 获取要素数量（原始要素，非聚合后的）
     */
    getFeatureCount(): number;
    /**
     * 获取聚合后的要素数量
     */
    getClusterCount(): number;
    /**
     * 更新聚合样式
     */
    updateClusterStyle(styleConfig: any): void;
    /**
     * 设置聚类样式配置
     */
    setClusterStyleConfig(clusterStyleConfig: IPointStyleConfig): void;
    /**
     * 设置单个要素样式配置
     */
    setSingleFeatureStyleConfig(singleFeatureStyleConfig: IStyleConfigMap): void;
    /**
     * 获取当前聚类样式配置
     */
    getClusterStyleConfig(): IPointStyleConfig | undefined;
    /**
     * 获取当前单个要素样式配置
     */
    getSingleFeatureStyleConfig(): IStyleConfigMap | undefined;
    /**
     * 更新图层配置
     */
    updateLayerConfig(config: Partial<LayerConfig>): void;
}
//# sourceMappingURL=ClusterLayerHandler.d.ts.map