import type { Database } from "./database.js"; export declare class MemoryEmbeddingStore { private db; private insertStmt; private getStmt; private getAllStmt; private deleteStmt; constructor(db: Database); insert(memoryId: number, vector: Float32Array): void; get(memoryId: number): Float32Array | undefined; /** * Materialise the full embedding map. Eats memory linearly with the * memory count — only call this when you actually need every vector * (e.g. cluster-mode `prune`). Hot retrieval paths should use * `findTopK` / `getMany` instead. */ getAll(): Map; /** * Stream every embedding through cosine similarity against `query` * and return the top-K matches. Constant-memory in K rather than * linear in the table size — this is what `recall` and `remember` * should use when they only need the highest-similarity rows. */ findTopK(query: Float32Array, k: number, minScore?: number): Array<{ memoryId: number; score: number; }>; /** * Fetch a specific subset of embeddings by memory id. Used by `prune`, * which already has a bounded candidate set and doesn't need to load * the entire table. Batched to keep `?` placeholder count under the * SQLite limit. */ getMany(ids: number[]): Map; delete(memoryId: number): void; }