import { ParsedFile, DependencyGraph } from '../types';
import { DiagramOptions, DiagramResult, DiagramType } from './diagram-types';
/**
 * Main coordinator for diagram generation
 * Routes requests to appropriate diagram generators
 */
export declare class DiagramCoordinator {
    private mermaidEnhancer;
    private classGenerator;
    constructor();
    /**
     * Generate diagram based on type and options
     */
    generateDiagram(data: {
        parsedFile?: ParsedFile;
        parsedFiles?: ParsedFile[];
        dependencyGraph?: DependencyGraph;
    }, options: DiagramOptions): DiagramResult;
    /**
     * Generate dependency diagram
     */
    private generateDependencyDiagram;
    /**
     * Generate class diagram
     */
    private generateClassDiagram;
    /**
     * Get supported diagram types
     */
    getSupportedTypes(): DiagramType[];
    /**
     * Validate diagram options
     */
    validateOptions(options: DiagramOptions): {
        valid: boolean;
        errors: string[];
    };
    /**
     * Generate multiple diagrams at once
     */
    generateMultipleDiagrams(data: {
        parsedFile?: ParsedFile;
        parsedFiles?: ParsedFile[];
        dependencyGraph?: DependencyGraph;
    }, types: DiagramType[], baseOptions?: Partial<DiagramOptions>): {
        [key in DiagramType]?: DiagramResult;
    };
    /**
     * Static factory method
     */
    static create(): DiagramCoordinator;
}
/**
 * Convenience function for quick diagram generation
 */
export declare function generateDiagram(type: DiagramType, data: {
    parsedFile?: ParsedFile;
    parsedFiles?: ParsedFile[];
    dependencyGraph?: DependencyGraph;
}, options?: Partial<DiagramOptions>): string;
