import type { IIndexManager } from "../storage/interfaces.js"; /** Embedding index structure — spec section 5.3 */ export interface EmbeddingIndex { model: string; dimension: number; entries: { id: string; vector: number[]; }[]; } export type IndexName = "blackboard" | "decisions"; export declare class IndexManager implements IIndexManager { private readonly embeddingsDir; constructor(twiningDir: string); /** Get the file path for a named index. */ private indexPath; /** Load an embedding index. Returns empty index if file doesn't exist. */ load(indexName: IndexName): Promise; /** Save an embedding index atomically with file locking. */ save(indexName: IndexName, index: EmbeddingIndex): Promise; /** * Add a single entry to an index. Loads, appends, saves atomically. * contentHash is accepted for interface parity and ignored: the file * backend has no ingest, so nothing ever consumes a hash here. */ addEntry(indexName: IndexName, id: string, vector: number[], _contentHash?: string): Promise; /** Remove entries by IDs from an index. */ removeEntries(indexName: IndexName, ids: string[]): Promise; /** Get a single vector by ID. Returns null if not found. */ getVector(indexName: IndexName, id: string): Promise; } //# sourceMappingURL=index-manager.d.ts.map