import { Layer } from 'ol/layer';
import { default as VectorSource } from 'ol/source/Vector';
import { Map as OLMap } from 'ol';
import { LayerConfig } from '../../types';
import { BaseLayer } from './BaseLayer';
import { IStyleConfigMap } from '../styles';

/**
 * GeoJSON图层处理器
 */
export declare class GeoJSONLayerHandler extends BaseLayer {
    private styleConfig?;
    private originalFeatures;
    private vectorSource;
    private refreshTimer;
    private refreshDebounceTimer;
    private initialRefreshTimer;
    private moveEndListener;
    private lastKnownZoom?;
    private isRefreshing;
    constructor(config: LayerConfig, map?: OLMap);
    createLayer(): Promise<Layer<VectorSource>>;
    private createVectorSource;
    private getGeoJSONConfig;
    private normalizeRequestConfig;
    private getDataProjection;
    private getMapProjection;
    private initializeSource;
    private scheduleInitialRefresh;
    private getVectorSource;
    private applyGeoJSONData;
    private readFeaturesFromData;
    private normalizeGeoJSONData;
    private getNestedValue;
    private buildRequestContext;
    private buildExtentPayload;
    private createRequestUrl;
    refresh(overrides?: {
        params?: Record<string, any>;
        body?: Record<string, any> | string;
    }): Promise<void>;
    updateRequestParams(params: Record<string, any>): void;
    private scheduleRefresh;
    private setupRefreshBehavior;
    private clearRefreshBehavior;
    /**
     * 创建样式函数
     */
    private createStyleFunction;
    /**
     * 解析样式配置
     */
    private parseStyleConfig;
    /**
     * 转换旧的样式配置为新格式
     */
    private convertLegacyStyle;
    /**
     * 添加要素
     */
    addFeatures(features: any[]): void;
    /**
     * 清空要素
     */
    clearFeatures(): void;
    /**
     * 获取要素数量
     */
    getFeatureCount(): number;
    /**
     * 更新样式
     */
    updateStyle(styleConfig: any): void;
    /**
     * 设置样式配置
     */
    setStyleConfig(styleConfig: IStyleConfigMap): void;
    /**
     * 获取当前样式配置
     */
    getStyleConfig(): IStyleConfigMap | undefined;
    /**
     * 设置基于属性的样式
     */
    setPropertyBasedStyle(propertyName: string, styleMapping: {
        [propertyValue: string]: IStyleConfigMap;
    }, defaultStyleConfig?: IStyleConfigMap): void;
    /**
     * 定位到图层中的所有要素
     * @param options 定位选项
     */
    fitToFeatures(options?: {
        padding?: number[];
        maxZoom?: number;
        duration?: number;
    }): void;
    /**
     * 定位到图层中心点
     * @param zoom 缩放级别，可选
     * @param duration 动画持续时间，默认1000ms
     */
    fitToCenter(zoom?: number, duration?: number): void;
    /**
     * 定位到指定的要素
     * @param featureId 要素ID或索引
     * @param zoom 缩放级别，可选
     * @param duration 动画持续时间，默认1000ms
     */
    fitToFeature(featureId: string | number, zoom?: number, duration?: number): void;
    /**
     * 获取图层的边界范围
     * @returns 边界范围 [minX, minY, maxX, maxY] 或 null
     */
    getExtent(): number[] | null;
    /**
     * 应用过滤器（实现基类的抽象方法）
     */
    protected applyFilters(): void;
    /**
     * 检查要素是否符合过滤器条件
     */
    private checkFeatureAgainstFilter;
    /**
     * 检查 CQL 过滤器
     * 将 CQL 表达式转换为属性过滤器进行检查
     */
    private checkCQLFilter;
    /**
     * 解析 CQL 表达式，转换为属性过滤器数组
     * 支持基本的 CQL 语法：property = 'value', property > value, property LIKE 'pattern'
     */
    private parseCQLExpression;
    /**
     * 解析单个 CQL 条件
     */
    private parseSingleCQLCondition;
    /**
     * 检查属性过滤器
     */
    private checkAttributeFilter;
    /**
     * 便捷方法：按属性值过滤
     */
    filterFeaturesByProperty(property: string, value: any): void;
    /**
     * 便捷方法：清除所有过滤器
     */
    clearAllFeatureFilters(): void;
    updateConfig(newConfig: Partial<LayerConfig>): void;
    setMap(map: OLMap): void;
    destroy(): void;
}
//# sourceMappingURL=GeoJSONLayerHandler.d.ts.map