/** * Multi-stage progress tracking for long-running operations */ export interface ProgressHistory { averageDuration: number; completions: number; stage: string; } export interface StageMetadata { itemsProcessed?: number; message?: string; totalItems?: number; } export interface StageProgress { endTime?: number; error?: string; metadata?: StageMetadata; name: string; progress: number; startTime?: number; status: 'completed' | 'failed' | 'pending' | 'running'; } export declare class MultiStageProgressTracker { private history; private stages; /** * Register a stage (optional, will be auto-registered on start) */ registerStage(name: string): void; /** * Start a stage */ startStage(name: string, metadata?: StageMetadata): void; /** * Update stage progress */ updateStage(name: string, progress: number, message?: string): void; /** * Complete a stage successfully */ completeStage(name: string): void; /** * Mark a stage as failed */ failStage(name: string, error: string): void; /** * Get overall progress across all stages (0-100) */ getOverallProgress(): number; /** * Get estimated time remaining in milliseconds */ getEstimatedTimeRemaining(): number; /** * Get all stages */ getStages(): StageProgress[]; /** * Get a specific stage */ getStage(name: string): StageProgress | undefined; /** * Get count of stages by status */ getStageCount(status?: StageProgress['status']): number; /** * Clear all stages */ clear(): void; /** * Update history for a stage */ private updateHistory; } export declare function getProgressTracker(): MultiStageProgressTracker; export declare function setProgressTracker(tracker: MultiStageProgressTracker): void; //# sourceMappingURL=multi-stage-progress.d.ts.map