/** * Embedding Cache - LRU cache for embeddings (Feature 4) * * Saves OpenAI API costs by caching computed embeddings */ export interface CacheEntry { textEmbedding: Float32Array; diffEmbedding: Float32Array; cachedAt: number; } /** * LRU (Least Recently Used) cache for embeddings */ export declare class EmbeddingCache { private cache; private maxSize; private hits; private misses; constructor(maxSize?: number); /** * Generate cache key from PR content */ private generateKey; /** * Get cached embeddings if available */ get(title: string, description: string, diff: string): CacheEntry | null; /** * Store embeddings in cache */ set(title: string, description: string, diff: string, textEmbedding: Float32Array, diffEmbedding: Float32Array): void; /** * Get cache statistics */ getStats(): { size: number; maxSize: number; hits: number; misses: number; hitRate: number; }; /** * Clear the cache */ clear(): void; /** * Export cache for persistence */ export(): { entries: Array<{ key: string; entry: { textEmbedding: number[]; diffEmbedding: number[]; cachedAt: number; }; }>; }; /** * Import cache from persistence */ import(data: { entries: Array<{ key: string; entry: { textEmbedding: number[]; diffEmbedding: number[]; cachedAt: number; }; }>; }): void; } /** * Create a caching wrapper around any embedder. * Caches individual embedText and embedDiff calls by their input text. */ export declare function withCache Promise; embedDiff: (diff: string) => Promise; }>(embedder: T, cacheSize?: number): T & { cache: EmbeddingCache; }; //# sourceMappingURL=embeddingCache.d.ts.map