/** * SQLite-backed Persistent Cache for Embeddings (sql.js) * * Features: * - Cross-platform support (pure JavaScript/WASM, no native compilation) * - Disk persistence across sessions * - LRU eviction with configurable max size * - Automatic schema creation * - TTL support for cache entries * - Lazy initialization (no startup cost if not used) */ /** * Configuration for persistent cache */ export interface PersistentCacheConfig { /** Path to SQLite database file */ dbPath: string; /** Maximum number of entries (default: 10000) */ maxSize?: number; /** TTL in milliseconds (default: 7 days) */ ttlMs?: number; /** Enable compression for large embeddings */ compress?: boolean; /** Auto-save interval in ms (default: 30000) */ autoSaveInterval?: number; } /** * Cache statistics */ export interface PersistentCacheStats { size: number; maxSize: number; hitRate: number; hits: number; misses: number; dbSizeBytes?: number; } /** * SQLite-backed persistent embedding cache using sql.js (pure JS/WASM) */ export declare class PersistentEmbeddingCache { private db; private SQL; private initialized; private dirty; private hits; private misses; private autoSaveTimer; private readonly dbPath; private readonly maxSize; private readonly ttlMs; private readonly autoSaveInterval; constructor(config: PersistentCacheConfig); /** * Lazily initialize database connection */ private ensureInitialized; /** * Start auto-save timer */ private startAutoSave; /** * Stop auto-save timer */ private stopAutoSave; /** * Save database to file */ private saveToFile; /** * Generate cache key from text */ private hashKey; /** * Serialize Float32Array to Uint8Array for sql.js */ private serializeEmbedding; /** * Deserialize Uint8Array to Float32Array */ private deserializeEmbedding; /** * Get embedding from cache */ get(text: string): Promise; /** * Store embedding in cache */ set(text: string, embedding: Float32Array): Promise; /** * Evict oldest entries if cache exceeds max size */ private evictIfNeeded; /** * Clean expired entries */ private cleanExpired; /** * Get cache statistics */ getStats(): Promise; /** * Clear all cached entries */ clear(): Promise; /** * Force save to disk */ flush(): Promise; /** * Close database connection */ close(): Promise; } /** * Check if persistent cache is available (sql.js installed) */ export declare function isPersistentCacheAvailable(): Promise; //# sourceMappingURL=persistent-cache.d.ts.map