import { MeasurementResult, LayerConfig } from '../types';

/**
 * 本地存储工具类
 * 支持实例隔离，每个地图组件实例可以有独立的存储空间
 */
export declare class MapStorage {
    private storageKeys;
    private instanceId;
    private isCleaningUp;
    private storageEnabled;
    constructor(instanceId?: string, enableStorage?: boolean);
    /**
     * 检查数据是否过期
     */
    private isDataExpired;
    /**
     * 清理过期数据
     */
    private cleanupExpiredData;
    /**
     * 初始化清理过量数据
     */
    private initCleanup;
    /**
     * 检查localStorage配额使用情况
     */
    private checkStorageQuota;
    /**
     * 自动清理旧数据
     */
    private autoCleanup;
    /**
     * 安全存储数据（带配额检查）
     */
    private safeSetItem;
    /**
     * 安全获取数据（带解压缩）
     */
    private safeGetItem;
    /**
     * 保存测量结果
     */
    saveMeasurements(measurements: MeasurementResult[]): void;
    /**
     * 获取测量结果
     */
    getMeasurements(): MeasurementResult[];
    /**
     * 添加单个测量结果（优化版本 - 避免重复ID）
     */
    addMeasurement(measurement: MeasurementResult): void;
    /**
     * 删除测量结果
     */
    removeMeasurement(id: string): void;
    /**
     * 清空所有测量结果
     */
    clearMeasurements(): void;
    /**
     * 保存图层配置（优化版本 - 避免重复存储相同配置）
     */
    saveLayerConfigs(configs: LayerConfig[]): void;
    /**
     * 获取图层配置
     */
    getLayerConfigs(): Partial<LayerConfig>[];
    /**
     * 保存地图状态
     */
    saveMapState(center: [number, number], zoom: number, rotation?: number): void;
    /**
     * 获取地图状态
     */
    getMapState(): {
        center: [number, number];
        zoom: number;
        rotation: number;
        timestamp?: number;
    } | null;
    /**
     * 清空所有缓存
     */
    clearAll(): void;
    /**
     * 获取存储大小（KB）
     */
    getStorageSize(): number;
    /**
     * 获取详细的存储状态信息
     */
    getStorageStatus(): {
        quota: {
            used: number;
            available: number;
            percentage: number;
        };
        instanceSize: number;
        measurementCount: number;
        layerConfigCount: number;
        compressionEnabled: boolean;
        warnings: string[];
    };
    /**
     * 手动清理存储
     */
    manualCleanup(options?: {
        clearMeasurements?: boolean;
        clearLayerConfigs?: boolean;
        clearMapState?: boolean;
        keepRecentCount?: number;
    }): void;
    /**
     * 导出存储数据（用于备份）
     */
    exportData(): {
        measurements: MeasurementResult[];
        layerConfigs: Partial<LayerConfig>[];
        mapState: any;
        exportTime: number;
    };
    /**
     * 导入存储数据（用于恢复）
     */
    importData(data: {
        measurements?: MeasurementResult[];
        layerConfigs?: Partial<LayerConfig>[];
        mapState?: any;
    }): boolean;
}
/**
 * 创建MapStorage实例的工厂函数
 */
export declare function createMapStorage(instanceId?: string, enableStorage?: boolean): MapStorage;
/**
 * 为了向后兼容，保留全局实例（但建议使用实例化方式）
 */
export declare const globalMapStorage: MapStorage;
//# sourceMappingURL=storage.d.ts.map