/** * Progress indicators and user experience utilities for ARK CLI */ export interface ProgressStep { name: string; status: 'pending' | 'running' | 'completed' | 'failed' | 'skipped'; message?: string; duration?: number; } export declare class ProgressIndicator { private title; private steps; private startTime; constructor(title: string); /** * Add a step to the progress indicator */ addStep(name: string, message?: string): void; /** * Start a step */ startStep(name: string, message?: string): void; /** * Complete a step */ completeStep(name: string, message?: string): void; /** * Fail a step */ failStep(name: string, message?: string): void; /** * Skip a step */ skipStep(name: string, message?: string): void; /** * Render the current progress */ private renderProgress; /** * Complete the progress indicator */ complete(message?: string): void; /** * Get status icon for a step */ private getStatusIcon; /** * Get status color for a step */ private getStatusColor; } /** * Simple spinner for long-running operations */ export declare class Spinner { private frames; private index; private interval; private message; constructor(message: string); start(): void; stop(finalMessage?: string): void; fail(errorMessage?: string): void; } /** * Enhanced prompts with better validation and user guidance */ export declare class EnhancedPrompts { /** * Show a helpful tip to the user */ static showTip(message: string): void; /** * Show a warning to the user */ static showWarning(message: string): void; /** * Show information to the user */ static showInfo(message: string): void; /** * Show a success message */ static showSuccess(message: string): void; /** * Show available options for a choice */ static showChoiceHelp(title: string, choices: Array<{ name: string; description: string; }>): void; /** * Show next steps after completion */ static showNextSteps(title: string, steps: string[]): void; /** * Show a separator for better visual organization */ static showSeparator(title?: string): void; } /** * Utility for consistent formatting of output */ export declare class OutputFormatter { /** * Format a list of key-value pairs */ static formatKeyValueList(items: Array<{ key: string; value: string; highlight?: boolean; }>): void; /** * Format a file list with icons */ static formatFileList(files: Array<{ path: string; type: 'file' | 'directory'; description?: string; }>): void; /** * Format command examples */ static formatCommands(title: string, commands: Array<{ command: string; description: string; }>): void; }