/** * Progress Reporter * * Real-time terminal display for autopilot progress. */ import type { AutopilotState, AutopilotStatus } from '../types.js'; /** * Worker display info */ export interface WorkerDisplayInfo { workerId: number; status: string; currentTicket?: string; elapsedTime?: string; completed: number; failed: number; cost: string; } /** * Progress summary */ export interface ProgressSummary { status: AutopilotStatus; totalTickets: number; completedTickets: number; failedTickets: number; pendingTickets: number; inProgressTickets: number; totalCost: string; elapsedTime: string; workers: WorkerDisplayInfo[]; currentEpic?: string; rateLimited: boolean; } /** * Progress Reporter Options */ export interface ProgressReporterOptions { showWorkerDetails?: boolean; refreshRateMs?: number; useColors?: boolean; } /** * Progress Reporter * * Formats and displays progress information in the terminal. */ export declare class ProgressReporter { private startTime; private showWorkerDetails; private useColors; private lastRender; constructor(options?: ProgressReporterOptions); /** * Format duration in human-readable form */ formatDuration(ms: number): string; /** * Format cost */ formatCost(cost: number): string; /** * Get status emoji/indicator */ getStatusIndicator(status: AutopilotStatus): string; /** * Get worker status indicator */ getWorkerStatusIndicator(status: string): string; /** * Apply color to text (ANSI codes) */ private color; /** * Color helpers (arrow functions to preserve `this` binding) */ private green; private red; private yellow; private blue; private dim; private bold; /** * Build progress summary from state */ buildSummary(state: AutopilotState): ProgressSummary; /** * Render progress bar */ renderProgressBar(completed: number, total: number, width?: number): string; /** * Render summary as text */ render(state: AutopilotState): string; /** * Render compact single-line status */ renderCompact(state: AutopilotState): string; /** * Render to console (with clear) */ renderToConsole(state: AutopilotState, clear?: boolean): void; /** * Create a table for multiple runs */ renderRunsTable(runs: Array<{ runId: string; status: AutopilotStatus; completed: number; failed: number; total: number; cost: number; startedAt: Date; }>): string; /** * Reset start time */ resetStartTime(): void; /** * Set start time */ setStartTime(time: Date): void; /** * Get elapsed time in ms */ getElapsedMs(): number; } /** * Create a progress reporter */ export declare function createProgressReporter(options?: ProgressReporterOptions): ProgressReporter; //# sourceMappingURL=progress-reporter.d.ts.map