import { type IndexingServiceOptions } from '../domain/indexing/indexingService.js'; import type { IndexMetadata } from '../domain/types/indexMetadata.js'; export interface IndexTelemetry { startTime: Date; endTime: Date; duration: number; processedFiles: number; projectPath: string; fingerprint: string; success: boolean; error?: string; } export interface IndexMaintenanceServiceOptions extends IndexingServiceOptions { onIndexStart?: (projectPath: string) => void; onIndexComplete?: (telemetry: IndexTelemetry) => void; onIndexError?: (error: Error, projectPath: string) => void; } /** * Service that wraps IndexingService with telemetry and maintenance hooks */ export declare class IndexMaintenanceService { private readonly indexingService; private readonly options; constructor(options?: IndexMaintenanceServiceOptions); /** * Rebuild index for a project with telemetry tracking */ rebuildIndex(projectPath: string): Promise<{ metadata: IndexMetadata; processedFiles: number; telemetry: IndexTelemetry; }>; /** * Get statistics about the last index operation */ getLastTelemetry(): IndexTelemetry | null; }