export interface ProgressStep {
    id: string;
    label: string;
    status: "pending" | "running" | "completed" | "failed";
    startTime?: number;
    endTime?: number;
    estimatedDuration?: number;
    actualDuration?: number;
}
export declare class ProgressTracker {
    private title;
    private steps;
    private currentStep;
    private startTime;
    constructor(title?: string);
    addStep(id: string, label: string, estimatedDuration?: number): this;
    startStep(id: string): this;
    completeStep(id: string, message?: string): this;
    failStep(id: string, error?: string): this;
    getSummary(): string;
    /**
     * Get estimated time remaining for pending steps
     */
    getEstimatedTimeRemaining(): number;
    /**
     * Get estimated completion time
     */
    getEstimatedCompletionTime(): Date;
    /**
     * Format time duration for display
     */
    private formatDuration;
    /**
     * Get detailed progress with time estimates and visual progress bar
     */
    getDetailedProgress(): string;
    /**
     * Create a visual progress bar
     */
    private createProgressBar;
    /**
     * Show current step status with time remaining
     */
    showCurrentStep(): void;
    /**
     * Start periodic progress updates
     */
    startProgressUpdates(intervalMs?: number): NodeJS.Timeout;
    showSummary(): void;
    static runTask<T>(label: string, task: () => Promise<T>, options?: {
        showTiming?: boolean;
    }): Promise<T>;
    static createBuildTracker(): ProgressTracker;
}
export declare const progress: {
    task: typeof ProgressTracker.runTask;
    build: typeof ProgressTracker.createBuildTracker;
};
//# sourceMappingURL=progress.d.ts.map