/** * Base Presenter - Common presentation utilities and interface */ import type { ConsoleOutput } from '../../output/console-output.js'; import type { MarkdownRenderer } from '../../output/markdown.js'; /** * Interface for command-specific presenters */ export interface CommandPresenter { /** * Display the command summary */ display(outputs: Record): void; /** * Get the command name this presenter handles */ getCommandName(): string; } /** * Base presenter with common utilities */ export declare abstract class BasePresenter implements CommandPresenter { protected readonly console: ConsoleOutput; protected readonly renderer: MarkdownRenderer; constructor(console: ConsoleOutput, renderer: MarkdownRenderer); abstract display(outputs: Record): void; abstract getCommandName(): string; /** * Display a summary box with title */ protected displaySummaryBox(title: string): void; /** * Display summary footer */ protected displaySummaryFooter(): void; /** * Format a key name as readable title */ protected formatKey(key: string): string; /** * Get status icon based on status string */ protected getStatusIcon(status: string): string; /** * Get decision icon based on decision string */ protected getDecisionIcon(decision: string): string; /** * Get severity icon */ protected getSeverityIcon(severity: string): string; /** * Truncate text with ellipsis */ protected truncate(text: string, maxLength: number): string; /** * Display a list with optional limit */ protected displayList(items: T[], formatter: (item: T) => string, options?: { indent?: string; limit?: number; }): void; /** * Safely extract string from outputs */ protected getString(outputs: Record, key: string): string | undefined; /** * Safely extract number from outputs */ protected getNumber(outputs: Record, key: string): number | undefined; /** * Safely extract array from outputs */ protected getArray(outputs: Record, key: string): T[] | undefined; /** * Safely extract object from outputs */ protected getObject(outputs: Record, key: string): T | undefined; } //# sourceMappingURL=base-presenter.d.ts.map