import { ReviewReport } from '../entities/ReviewReport'; import { SecurityIssue } from '../entities/SecurityIssue'; import { TestSuggestion } from '../entities/TestSuggestion'; import { DocSuggestion } from '../entities/DocSuggestion'; export type OutputFormat = 'console' | 'markdown' | 'json' | 'html' | 'github' | 'file'; export interface OutputOptions { readonly format: OutputFormat; readonly outputPath?: string; readonly includeMetadata?: boolean; readonly verbose?: boolean; readonly colorize?: boolean; readonly template?: string; } export interface OutputPort { /** * Display a review report */ displayReviewReport(report: ReviewReport, options?: OutputOptions): Promise; /** * Display security issues */ displaySecurityIssues(issues: SecurityIssue[], options?: OutputOptions): Promise; /** * Display test suggestions */ displayTestSuggestions(suggestions: TestSuggestion[], options?: OutputOptions): Promise; /** * Display documentation suggestions */ displayDocSuggestions(suggestions: DocSuggestion[], options?: OutputOptions): Promise; /** * Display a simple message */ displayMessage(message: string, options?: OutputOptions): Promise; /** * Display an error message */ displayError(error: string, options?: OutputOptions): Promise; /** * Display a warning message */ displayWarning(warning: string, options?: OutputOptions): Promise; /** * Display a success message */ displaySuccess(message: string, options?: OutputOptions): Promise; /** * Display a progress indicator */ displayProgress(message: string): void; /** * Clear the progress indicator */ clearProgress(): void; /** * Display a table of data */ displayTable(data: Record[], options?: OutputOptions): Promise; /** * Export data to a file */ exportToFile(data: unknown, filePath: string, format: OutputFormat): Promise; }