import { EmbeddingsV2 } from './embeddings-v2.js'; export interface SessionContext { project: string; activeFile?: string; recentFiles?: string[]; recentEdits?: Array<{ file: string; type: string; ts: number; }>; activeAgent?: string; recentQueries?: string[]; } export interface CachedRecall { query: string; project: string; hits: Array<{ id: string; score: number; text: string; }>; storedAt: number; source: 'prefetch' | 'observe' | 'direct'; } export interface WorkingMemoryStats { capacity: number; used: number; hitRate: number; evictionsCount: number; prefetchHitRate: number; } export declare class BrainWorkingMemory { private capacity; private lru; private hits; private misses; private prefetchHits; private prefetchedTotal; private evictionsCount; private prefetchedKeys; private writesSinceFlush; private latestContext; private initialized; private readonly index; constructor(opts?: { index?: EmbeddingsV2; }); /** Lazy init — loads persisted entries + config. Safe to call repeatedly. */ private init; /** Feed the latest session context. Used for predictions on next get/prefetch. */ observe(context: SessionContext): void; /** Sub-10ms fast path. Returns null if not cached. */ get(query: string): Promise; /** Predict next likely queries from the latest context. Deterministic, no LLM. */ predictNext(opts?: { topK?: number; }): Promise; /** Fire-and-forget warm. Queries are embedded + searched, results cached. */ prefetch(queries: string[], project: string): Promise<{ prefetched: number; durationMs: number; }>; stats(): WorkingMemoryStats; /** Persist current contents to disk. */ flush(): Promise; /** Wipe contents + metrics. Persistence is cleared. */ reset(): void; private putEntry; private maybeGrow; private keyOf; private loadConfig; private persistConfig; private loadStore; private persist; } export declare function getBrainWorkingMemory(): BrainWorkingMemory; export declare function resetBrainWorkingMemoryForTests(): void; //# sourceMappingURL=brain-working-memory.d.ts.map