import { ToolResult } from '../types/index.js';
export type DiagramType = 'flowchart' | 'sequence' | 'class' | 'state' | 'er' | 'gantt' | 'pie' | 'mindmap' | 'timeline' | 'git' | 'ascii';
export interface DiagramOptions {
    type: DiagramType;
    title?: string;
    theme?: 'default' | 'dark' | 'forest' | 'neutral';
    width?: number;
    height?: number;
    outputFormat?: 'svg' | 'png' | 'ascii';
    outputPath?: string;
}
export interface DiagramResult {
    content: string;
    format: string;
    path?: string;
    mermaidCode?: string;
}
/**
 * Diagram Tool for generating flowcharts, sequence diagrams, and other visualizations
 * Supports Mermaid syntax for rich diagrams and ASCII art for terminal display
 */
export declare class DiagramTool {
    private readonly outputDir;
    private vfs;
    /**
     * Generate a diagram from Mermaid code
     */
    generateFromMermaid(mermaidCode: string, options?: Partial<DiagramOptions>): Promise<ToolResult>;
    /**
     * Generate a flowchart
     */
    generateFlowchart(nodes: Array<{
        id: string;
        label: string;
        type?: 'default' | 'round' | 'diamond' | 'stadium';
    }>, connections: Array<{
        from: string;
        to: string;
        label?: string;
        type?: 'arrow' | 'dotted' | 'thick';
    }>, options?: Partial<DiagramOptions>): Promise<ToolResult>;
    /**
     * Generate a sequence diagram
     */
    generateSequenceDiagram(participants: string[], messages: Array<{
        from: string;
        to: string;
        message: string;
        type?: 'sync' | 'async' | 'reply';
    }>, options?: Partial<DiagramOptions>): Promise<ToolResult>;
    /**
     * Generate a class diagram
     */
    generateClassDiagram(classes: Array<{
        name: string;
        attributes?: string[];
        methods?: string[];
    }>, relationships: Array<{
        from: string;
        to: string;
        type: 'inheritance' | 'composition' | 'aggregation' | 'association' | 'dependency';
        label?: string;
    }>, options?: Partial<DiagramOptions>): Promise<ToolResult>;
    /**
     * Generate a pie chart
     */
    generatePieChart(title: string, data: Array<{
        label: string;
        value: number;
    }>, options?: Partial<DiagramOptions>): Promise<ToolResult>;
    /**
     * Generate a Gantt chart
     */
    generateGanttChart(title: string, sections: Array<{
        name: string;
        tasks: Array<{
            name: string;
            id: string;
            start: string;
            duration: string;
            status?: 'done' | 'active' | 'crit';
        }>;
    }>, options?: Partial<DiagramOptions>): Promise<ToolResult>;
    /**
     * Generate ASCII box diagram
     */
    generateAsciiBox(title: string, content: string[], options?: {
        width?: number;
    }): string;
    /**
     * Generate ASCII flowchart
     */
    generateAsciiFlowchart(nodes: Array<{
        id: string;
        label: string;
    }>, connections: Array<{
        from: string;
        to: string;
    }>): string;
    /**
     * Generate ASCII tree
     */
    generateAsciiTree(root: string, children: Array<{
        name: string;
        children?: Array<{
            name: string;
        }>;
    }>): string;
    /**
     * Convert Mermaid to ASCII (basic conversion)
     */
    private mermaidToAscii;
    /**
     * Convert flowchart to ASCII
     */
    private flowchartToAscii;
    /**
     * Convert sequence diagram to ASCII
     */
    private sequenceToAscii;
    /**
     * Convert pie chart to ASCII
     */
    private pieToAscii;
    /**
     * Check if Mermaid CLI is available
     */
    private checkMermaidCli;
    /**
     * Render diagram with Mermaid CLI
     */
    private renderWithMermaidCli;
    /**
     * List generated diagrams
     */
    listDiagrams(): Promise<ToolResult>;
    /**
     * Format file size
     */
    private formatSize;
}
