export interface TUIStats { completed: number; processed?: number; total: number; errors: number; currentFile: string; queueLength?: number; batchSize?: number; isFlushing?: boolean; totalWritesEstimate?: number; writesCompleted?: number; } export interface ResourceStats { cpuCores: number; totalMemory: number; freeMemory: number; usedMemory: number; memoryUsagePercent: number; concurrency: number; } interface BlessedScreen { width?: number; height?: number; key: (keys: string[], handler: () => void) => void; on: (event: string, handler: () => void) => void; removeListener: (event: string, handler: () => void) => void; removeAllListeners: () => void; render: () => void; clearRegion: (x1: number, x2: number, y1: number, y2: number) => void; cursor: { reset: () => void; hide: () => void; show: () => void; }; destroy: () => void; input?: { pause?: () => void; resume?: () => void; removeAllListeners?: () => void; unref?: () => void; destroy?: () => void; }; } export declare class TUI { private screen; private grid; private progressBox; private statsBox; private resourceBox; private fileListBox; private completedFilesBox; private logBox; private headerBox; private startTime; private completedFiles; private maxCompletedFiles; private filesWithErrors; private stats; private resourceStats; private fileItems; private maxFileItems; private isInitialized; private keyHandler; private resizeHandler; private peakQueueLength; private operation; constructor(title?: string); private createHeader; /** * Initialize TUI with total file count */ init(total: number, operation?: string): void; /** * Set startup information to display in TUI */ setStartupInfo(info: { sourcePath?: string; targetPath?: string; totalFiles?: number; systemResources?: string; concurrency?: string; writeBatcher?: string; }): void; /** * Update progress statistics */ updateStats(stats: Partial): void; /** * Update resource statistics */ updateResourceStats(resourceStats: ResourceStats): void; /** * Add a file to the processing queue display * Only shows pending and processing files - completed files are moved to completed queue */ addFile(file: string, status?: 'pending' | 'processing' | 'completed' | 'error'): void; /** * Log a message to the status log */ log(message: string): void; /** * Update progress display * Now incorporates flushing writes into overall progress calculation */ private updateProgress; /** * Update resource display */ private updateResourceDisplay; /** * Format duration in human-readable format */ private formatDuration; /** * Render the screen */ render(): void; /** * Show completion message and cleanup */ complete(success?: boolean): void; /** * Cleanup and restore terminal * Must be called before any console.log output to prevent overwriting */ cleanup(): void; /** * Get the screen instance (for advanced usage) */ getScreen(): BlessedScreen; } export {}; //# sourceMappingURL=tui.d.ts.map