/** * Incremental TF-IDF Index Manager * Efficiently updates TF-IDF vectors without full rebuild */ import type { DocumentVector } from './tfidf.js'; export interface IncrementalUpdate { type: 'add' | 'update' | 'delete'; uri: string; oldDocument?: DocumentVector; newContent?: string; } export interface IncrementalStats { totalDocuments: number; affectedDocuments: number; affectedTerms: number; updateTime: number; } /** * Incremental TF-IDF Index Manager * * ALGORITHM: * 1. Track document frequency (df) for each term * 2. When document changes: * - Update df for affected terms * - Recalculate IDF for affected terms * - Update TF-IDF only for affected documents * 3. Avoid full rebuild unless necessary */ export declare class IncrementalTFIDF { private documents; private idf; private documentFrequency; private totalDocuments; constructor(initialDocuments?: DocumentVector[], initialIdf?: Map); /** * Apply multiple updates efficiently */ applyUpdates(updates: IncrementalUpdate[]): Promise; /** * Add a new document */ private addDocumentInternal; /** * Update an existing document */ private updateDocumentInternal; /** * Delete a document */ private deleteDocumentInternal; /** * Extract terms from content (async - uses StarCoder2) */ private extractTerms; /** * Calculate TF for a document */ private calculateTF; /** * Recalculate TF-IDF for a document */ private recalculateDocumentTFIDF; /** * Get current index state */ getIndex(): { documents: DocumentVector[]; idf: Map; totalDocuments: number; }; /** * Check if full rebuild is recommended * Returns true if changes are too extensive for incremental update */ shouldFullRebuild(updates: IncrementalUpdate[]): Promise; } //# sourceMappingURL=incremental-tfidf.d.ts.map