/** * Cleanup Index Use Case * * Removes stale index entries for files that no longer exist. */ import type { Config, ModuleManifest } from '../entities'; import type { FileSystem } from '../ports'; import type { IndexModule } from '../../types'; /** * Result of cleanup for a single module */ export interface CleanupResult { moduleId: string; /** Number of stale entries removed */ removed: number; /** Number of valid entries kept */ kept: number; } /** * Options for the cleanup use case */ export interface CleanupIndexOptions { /** Show verbose output */ verbose?: boolean; /** Callback for progress updates */ onProgress?: (message: string) => void; } /** * Dependencies required by this use case */ export interface CleanupIndexDependencies { /** Filesystem abstraction */ fileSystem: FileSystem; /** Load configuration */ loadConfig: (rootDir: string) => Promise; /** Get enabled modules */ getEnabledModules: (config: Config) => IndexModule[]; /** Load module manifest */ loadModuleManifest: (rootDir: string, moduleId: string, config: Config) => Promise; /** Save module manifest */ saveModuleManifest: (rootDir: string, moduleId: string, manifest: ModuleManifest, config: Config) => Promise; /** Delete file index */ deleteFileIndex: (rootDir: string, moduleId: string, filepath: string, config: Config) => Promise; } /** * Clean up stale index entries. * * This use case: * 1. Loads configuration * 2. For each module, checks if indexed files still exist * 3. Removes index entries for deleted files * 4. Updates manifests */ export declare function cleanupIndex(rootDir: string, deps: CleanupIndexDependencies, options?: CleanupIndexOptions): Promise;