import cliProgress from 'cli-progress'; /** * --------------------------------------- * Theme (colors + emojis) * --------------------------------------- */ export declare const colors: { readonly text: import("chalk").ChalkInstance; readonly success: import("chalk").ChalkInstance; readonly info: import("chalk").ChalkInstance; readonly warning: import("chalk").ChalkInstance; readonly error: import("chalk").ChalkInstance; readonly comment: import("chalk").ChalkInstance; readonly primary: import("chalk").ChalkInstance; readonly secondary: import("chalk").ChalkInstance; readonly severity: { readonly critical: import("chalk").ChalkInstance; readonly high: import("chalk").ChalkInstance; readonly medium: import("chalk").ChalkInstance; readonly low: import("chalk").ChalkInstance; readonly info: import("chalk").ChalkInstance; }; readonly accent: import("chalk").ChalkInstance; }; export declare const emojis: { readonly success: "✅"; readonly info: "ℹ️"; readonly warning: "⚠️"; readonly error: "❌"; readonly loading: "⏳"; readonly done: "🎉"; readonly analyze: "🔍"; readonly scan: "🔎"; readonly search: "🔍"; readonly check: "✅"; readonly fix: "🔧"; readonly create: "📝"; readonly save: "💾"; readonly upload: "📤"; readonly download: "📥"; readonly stack: "📦"; readonly resource: "🔧"; readonly service: "⚙️"; readonly security: "🔒"; readonly performance: "⚡"; readonly cost: "💰"; readonly phase1: "📋"; readonly phase2: "🤖"; readonly phase3: "📊"; readonly github: "🐙"; readonly issue: "📋"; readonly gist: "📄"; readonly critical: "🔴"; readonly high: "🟠"; readonly medium: "🟡"; readonly low: "🟢"; readonly sparkles: "✨"; readonly rocket: "🚀"; readonly brain: "🧠"; readonly shield: "🛡️"; readonly lightning: "⚡"; readonly chart: "📊"; readonly clock: "⏱️"; readonly target: "🎯"; }; /** * --------------------------------------- * Output dependencies (DI for testability) * --------------------------------------- */ type OutputDeps = { log: (...args: unknown[]) => void; write: (text: string) => void; clearScreen: () => void; now: () => number; columns: () => number; }; /** * --------------------------------------- * Progress bar (functional) * --------------------------------------- */ export type ProgressBarHandle = { update: (current: number) => void; complete: () => void; }; export declare const createProgressBar: (total: number, label?: string, deps?: OutputDeps) => ProgressBarHandle; /** * --------------------------------------- * Enhanced job progress display (functional) * --------------------------------------- */ export type JobStatus = 'starting' | 'processing' | 'completed' | 'failed' | 'retrying' | 'polling'; type JobStatusDetails = { estimatedTime?: number; resourceType?: string; }; export declare const createJobProgressDisplay: (deps?: OutputDeps) => { start: () => void; stop: () => void; addJob: (jobId: string, resourceId: string, resourceType?: string) => void; updateJobStatus: (jobId: string, status: JobStatus, attempt?: number, details?: JobStatusDetails) => void; removeJob: (jobId: string) => void; getStats: () => { total: number; completed: number; processing: number; failed: number; retrying: number; active: number; }; refresh: () => void; }; /** * --------------------------------------- * Terminal (functional replacement for class) * --------------------------------------- */ type Summary = { totalResources: number; resourcesWithIssues: number; percentWithIssues: number; totalIssues: number; severityCounts: Record<'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW', number>; wafIssues: Record; }; export type Terminal = { header: (message: string) => void; section: (title: string, emoji?: string) => void; success: (message: string, emoji?: string) => void; info: (message: string, emoji?: string) => void; warning: (message: string, emoji?: string) => void; error: (message: string, emoji?: string) => void; comment: (message: string, emoji?: string) => void; phase1: (message: string) => void; phase2: (message: string) => void; phase3: (message: string) => void; analysisStart: (stackName: string, resourceCount: number) => void; analysisProgress: (current: number, total: number, phase: string) => void; analysisProgressMixed: (current: number, total: number, phase: string, fastJobs?: number, slowJobs?: number) => void; analysisProgressInPlace: (current: number, total: number, phase: string) => void; analysisProgressInPlaceMixed: (current: number, total: number, phase: string, fastJobs?: number, slowJobs?: number) => void; analysisProgressLive: (current: number, total: number, phase: string, spinner?: string) => void; analysisProgressLiveMixed: (current: number, total: number, phase: string, fastJobs?: number, slowJobs?: number, spinner?: string) => void; createSmoothProgressBar: (total: number, format?: string) => cliProgress.SingleBar; analysisComplete: (durationMs: number, successCount: number, failureCount: number, timeoutCount: number) => void; resourceAnalysis: (resourceName: string, service: string, issues: number) => void; severityBadge: (severity: string) => string; summary: (summary: Summary) => void; githubIssueCreated: (issueUrl: string) => void; githubGistCreated: (gistUrl: string) => void; createProgressBar: (total: number, label?: string) => ProgressBarHandle; spinner: (message: string, callback: () => Promise) => Promise; divider: () => void; newline: () => void; clearLine: () => void; displayTrialStatus: (quotaInfo: { currentResourcesAnalyzed: number; maxResources: number; remainingResources: number; isTrial: boolean; trialExpired: boolean; trialStart?: number; trialEnd?: number; tier?: string; }) => void; displayQuotaWarning: (quotaInfo: { currentResourcesAnalyzed: number; maxResources: number; remainingResources: number; requestedResources: number; isTrial: boolean; }) => void; }; export declare const createTerminal: (deps?: OutputDeps) => Terminal; /** * Export singleton instance (functional) */ export declare const terminal: Terminal; export {};