/**
 * @fileoverview Progress tracker for multi-pass reviews.
 *
 * This module provides utilities for tracking and displaying progress
 * during multi-pass reviews.
 */
/**
 * Progress state for a multi-pass review
 */
export interface MultiPassProgress {
    /** Total number of passes */
    totalPasses: number;
    /** Current pass number */
    currentPass: number;
    /** Files being processed in the current pass */
    currentFiles: string[];
    /** Total number of files */
    totalFiles: number;
    /** Number of files processed so far */
    processedFiles: number;
    /** Start time of the review */
    startTime: Date;
    /** Estimated completion time */
    estimatedCompletionTime?: Date;
    /** Whether the review is complete */
    isComplete: boolean;
    /** Current phase of the review */
    currentPhase: 'preparing' | 'analyzing' | 'reviewing' | 'processing' | 'consolidating' | 'complete';
}
/**
 * Progress tracker for multi-pass reviews
 */
export declare class MultiPassProgressTracker {
    private progress;
    private updateInterval;
    private useAnsiEscapes;
    private completedFiles;
    /**
     * Create a new progress tracker
     * @param totalPasses Total number of passes
     * @param totalFiles Total number of files
     * @param options Options for the progress tracker
     */
    constructor(totalPasses?: number, totalFiles?: number, options?: {
        useAnsiEscapes?: boolean;
        quiet?: boolean;
    });
    /**
     * Initialize the progress tracker with a total file count
     * @param totalFiles Total number of files
     */
    initialize(totalFiles: number): void;
    /**
     * Start the progress update interval
     */
    private startProgressUpdates;
    /**
     * Stop the progress update interval
     */
    stopProgressUpdates(): void;
    /**
     * Update the progress display
     */
    private updateProgressDisplay;
    /**
     * Start a new pass
     * @param passNumber Pass number
     * @param files Files being processed in this pass
     */
    startPass(passNumber: number, files: string[]): void;
    /**
     * Complete a pass
     * @param passNumber Pass number
     */
    completePass(passNumber: number): void;
    /**
     * Set the current phase
     * @param phase Current phase
     */
    setPhase(phase: MultiPassProgress['currentPhase']): void;
    /**
     * Complete the review
     */
    complete(): void;
    /**
     * Mark a file as completed
     * @param filePath Path to the file that was completed
     */
    completeFile(filePath: string): void;
    /**
     * Get the current progress
     * @returns Current progress state
     */
    getProgress(): MultiPassProgress;
    /**
     * Get the full state including completed files
     * @returns Full state object
     */
    getState(): {
        progressData: MultiPassProgress;
        completedFiles: string[];
        progress: number;
        completed: boolean;
        currentPass: number;
    };
}
