/** * Index lifecycle manager. * * Orchestrates: file scanning → chunking → embedding → FTS indexing → import graph. * Supports incremental updates via mtime comparison. */ import type { SearchDatabase } from "./db.js"; import type { Embedder } from "./embedder.js"; import type { IndexConfig, IndexProgressCallback } from "./types.js"; export declare class IndexManager { private readonly config; private db; private embedder; constructor(config: IndexConfig); /** Check if node:sqlite is available. */ static isAvailable(): boolean; /** Open or create the index database. */ open(): SearchDatabase; /** * Set an external embedder instance to share with the caller. * When set, embedChunks() uses this instead of creating its own. */ setEmbedder(embedder: Embedder): void; /** Close the database and dispose resources. */ close(): void; /** Get the database, opening if needed. */ getDb(): SearchDatabase; /** * Build or incrementally update the index. * * 1. Scan project for files * 2. Compare mtimes against stored records * 3. Re-chunk and re-embed only changed/new files * 4. Remove deleted files */ buildIndex(onProgress?: IndexProgressCallback): Promise<{ added: number; updated: number; removed: number; failed: number; }>; /** * Ensure all chunks have embeddings, generating any missing ones. */ ensureEmbeddings(onProgress?: IndexProgressCallback): Promise; /** * Generate embeddings for specific chunks. * Requires an embedder to be set via setEmbedder() before calling. */ private embedChunks; /** Check if the index exists. */ indexExists(): boolean; /** Get index stats. */ getStats(): { files: number; chunks: number; } | null; } //# sourceMappingURL=index-manager.d.ts.map