/**
 * 路由缓存管理器
 * 提供路由转换结果、匹配结果的缓存功能
 */
import type { RouteConfig } from '../types';
import type { TransformRoutesResult } from '../utils/transform';
/**
 * LRU 缓存配置
 */
export interface RouteCacheConfig {
    /**
     * 最大缓存数量
     * @default 50
     */
    maxSize?: number;
    /**
     * 缓存过期时间（毫秒）
     * @default 5 * 60 * 1000 (5分钟)
     */
    ttl?: number;
    /**
     * 是否启用持久化缓存（使用 IndexedDB）
     * @default false
     */
    enablePersistence?: boolean;
    /**
     * 持久化缓存键前缀
     * @default 'router_cache_'
     */
    persistenceKeyPrefix?: string;
}
/**
 * 路由缓存管理器
 */
export declare class RouteCache {
    private cache;
    private matchCache;
    private config;
    private persistenceEnabled;
    constructor(config?: RouteCacheConfig);
    /**
     * 初始化持久化缓存
     */
    private initPersistence;
    /**
     * 从持久化存储加载缓存
     */
    private loadFromPersistence;
    /**
     * 保存到持久化存储
     */
    private saveToPersistence;
    /**
     * 生成缓存键
     */
    private generateKey;
    /**
     * 字符串哈希函数（简单实现）
     */
    private hashString;
    /**
     * 检查缓存项是否过期
     */
    private isExpired;
    /**
     * 清理过期缓存
     */
    private cleanup;
    /**
     * LRU 淘汰策略
     */
    private evictLRU;
    /**
     * 启动定期清理
     */
    private startCleanupInterval;
    /**
     * 获取转换结果缓存
     */
    get(routes: RouteConfig[] | (() => Promise<RouteConfig[]>)): TransformRoutesResult | null;
    /**
     * 设置转换结果缓存
     */
    set(routes: RouteConfig[] | (() => Promise<RouteConfig[]>), value: TransformRoutesResult): void;
    /**
     * 获取路由匹配缓存
     */
    getMatch(path: string): RouteConfig | null | undefined;
    /**
     * 设置路由匹配缓存
     */
    setMatch(path: string, route: RouteConfig | null): void;
    /**
     * 清空所有缓存
     */
    clear(): void;
    /**
     * 获取缓存统计信息
     */
    getStats(): {
        transformCacheSize: number;
        matchCacheSize: number;
        totalSize: number;
        hitRate: number;
    };
}
export declare function getRouteCache(config?: RouteCacheConfig): RouteCache;
//# sourceMappingURL=RouteCache.d.ts.map