import type { TokenCacheEntry, TokenCacheConfig, TokenCacheStats } from '../../types/index.js';
/**
 * In-memory LRU response cache with content-hash keys and TTL support.
 */
export declare class ResponseCache {
    private readonly entries;
    private readonly config;
    private hits;
    private misses;
    private totalTokensSaved;
    constructor(config?: Partial<TokenCacheConfig>);
    /**
     * Generate a content-hash key from input text.
     */
    static hashKey(input: string): string;
    /**
     * Get a cached response by key. Returns undefined on miss.
     */
    get(key: string): string | undefined;
    /**
     * Cache a response with optional TTL override.
     */
    set(key: string, value: string, ttlMs?: number): void;
    /**
     * Invalidate a specific cache entry or entries matching a pattern.
     */
    invalidate(keyOrPattern: string): number;
    /**
     * Get cache statistics.
     */
    stats(): TokenCacheStats;
    /**
     * Remove all expired entries.
     */
    cleanup(): number;
    /**
     * Clear all entries and reset stats.
     */
    clear(): void;
    /**
     * Get entries suitable for persistence (TTL > persistMinTtlMs).
     */
    getPersistableEntries(): TokenCacheEntry<string>[];
    /**
     * Load entries from persistence.
     */
    loadEntries(entries: TokenCacheEntry<string>[]): void;
}
//# sourceMappingURL=response-cache.d.ts.map