/**
 * MemoryCacheStore — 基于 Map 的 LRU 内存缓存存储
 *
 * 核心特性：
 *   - LRU 淘汰：读取时 delete+set 移到 Map 末尾；满时删除 Map 第一个（最旧）
 *   - TTL 过期：get() 时检查 Date.now() > expiresAt，过期即删除
 *   - 标签索引：tagIndex: Map<tag, Set<key>>，invalidateByTag() 批量删除
 *   - 同步接口：get() 返回 CacheEntry | null（非 Promise），避免微任务开销
 *   - 统计：hits / misses 计数，stats() 计算 hitRate
 *
 * @module lib/cache/memory-store
 * @see 15-route-cache.md §4.6（MemoryCacheStore 设计）
 */
import type { CacheStore, CacheEntry } from "../../types/app.js";
/**
 * MemoryCacheStore 构造选项
 */
export interface MemoryCacheStoreOptions {
    /** 最大缓存条目数（默认 1000） */
    maxEntries?: number;
}
/**
 * MemoryCacheStore — LRU 内存缓存实现
 *
 * 基于 ES6 Map 的插入顺序特性实现 LRU：
 *   - Map 保持插入顺序（ECMAScript 规范保证）
 *   - get() 命中时 delete+set 将条目移到末尾（最新）
 *   - 容量满时删除 Map.keys().next()（最旧/最少使用）
 *
 * 性能：
 *   - get / set / delete: O(1)
 *   - invalidateByTag: O(tag 关联的 key 数量)
 *   - clear: O(1)
 */
export declare class MemoryCacheStore implements CacheStore {
    private _store;
    private _tagIndex;
    private _maxEntries;
    private _hits;
    private _misses;
    constructor(options?: MemoryCacheStoreOptions);
    /**
     * 获取缓存条目
     *
     * 同步返回（内存存储无异步 I/O）。
     * 检查 TTL 过期，过期则删除并返回 null。
     * LRU 命中时 delete+set 移到 Map 末尾。
     */
    get(key: string): CacheEntry | null;
    /**
     * 写入缓存条目
     *
     * LRU 淘汰：超过 maxEntries 时删除最旧条目。
     * 标签索引：维护 tag → Set<key> 映射。
     */
    set(key: string, entry: CacheEntry, ttl: number): void;
    /**
     * 删除指定 key 的缓存条目
     */
    delete(key: string): void;
    /**
     * 按标签批量失效
     *
     * 删除所有关联到指定 tag 的缓存条目。
     */
    invalidateByTag(tag: string): void;
    /**
     * 清空所有缓存
     */
    clear(): void;
    /**
     * 缓存统计信息
     */
    stats(): {
        entries: number;
        hits: number;
        misses: number;
        hitRate: number;
    };
    /**
     * 删除条目及其标签索引
     */
    private _deleteEntry;
    /**
     * 从标签索引中移除 key
     */
    private _removeTagIndex;
    /**
     * 将 key 添加到标签索引
     */
    private _addTagIndex;
}
