/** * Flow Display - Textual DAG visualization for workflows */ export interface FlowNode { id: string; name: string; type: 'agent' | 'tool' | 'condition' | 'parallel' | 'start' | 'end'; status?: 'pending' | 'running' | 'completed' | 'failed' | 'skipped'; children?: string[]; metadata?: Record; } export interface FlowGraph { nodes: Map; edges: Array<{ from: string; to: string; label?: string; }>; } export interface FlowDisplayConfig { showStatus?: boolean; showMetadata?: boolean; compact?: boolean; maxWidth?: number; } /** * Flow Display class for DAG visualization */ export declare class FlowDisplay { private graph; private config; constructor(config?: FlowDisplayConfig); /** * Add a node to the graph */ addNode(node: FlowNode): void; /** * Add an edge between nodes */ addEdge(from: string, to: string, label?: string): void; /** * Update node status */ updateStatus(id: string, status: FlowNode['status']): void; /** * Build graph from workflow steps */ fromTasks(steps: Array<{ name: string; type?: string; condition?: string; }>): void; /** * Render the graph as text */ render(): string; /** * Render a single node and its children */ private renderNode; /** * Format a node for display */ private formatNode; /** * Render as simple ASCII box diagram */ renderBoxes(): string; /** * Create a box for a node */ private createBox; /** * Get status character */ private getStatusChar; /** * Clear the graph */ clear(): void; /** * Get graph data */ getGraph(): FlowGraph; /** * Export to DOT format (for Graphviz) */ toDot(): string; } /** * Create a flow display instance */ export declare function createFlowDisplay(config?: FlowDisplayConfig): FlowDisplay; /** * Quick render workflow steps */ export declare function renderWorkflow(steps: Array<{ name: string; type?: string; }>): string;