export interface DiagramConfig { name: string; type: DiagramType; format: DiagramFormat; description?: string; template?: string; outputPath?: string; } export enum DiagramType { // BPMN Types BPMN_PROCESS = 'bpmn-process', BPMN_COLLABORATION = 'bpmn-collaboration', BPMN_CHOREOGRAPHY = 'bpmn-choreography', // UML Types UML_CLASS = 'uml-class', UML_SEQUENCE = 'uml-sequence', UML_USE_CASE = 'uml-use-case', UML_ACTIVITY = 'uml-activity', UML_STATE = 'uml-state', UML_COMPONENT = 'uml-component', UML_DEPLOYMENT = 'uml-deployment', // Database Types ER_DIAGRAM = 'er-diagram', DATABASE_SCHEMA = 'database-schema', CONCEPTUAL_MODEL = 'conceptual-model', // Network Types NETWORK_TOPOLOGY = 'network-topology', INFRASTRUCTURE = 'infrastructure', CLOUD_ARCHITECTURE = 'cloud-architecture', // Architecture Types SYSTEM_ARCHITECTURE = 'system-architecture', MICROSERVICES = 'microservices', LAYERED_ARCHITECTURE = 'layered-architecture', C4_CONTEXT = 'c4-context', C4_CONTAINER = 'c4-container', C4_COMPONENT = 'c4-component', // General Types FLOWCHART = 'flowchart', ORGCHART = 'orgchart', MINDMAP = 'mindmap', WIREFRAME = 'wireframe', GANTT = 'gantt' } export enum DiagramFormat { DRAWIO = 'drawio', DRAWIO_SVG = 'drawio.svg', DRAWIO_PNG = 'drawio.png', DIO = 'dio', XML = 'xml', SVG = 'svg', PNG = 'png', PDF = 'pdf', HTML = 'html', VSDX = 'vsdx' } export enum ExportFormat { PNG = 'png', SVG = 'svg', PDF = 'pdf', JPEG = 'jpeg', HTML = 'html', XML = 'xml', VSDX = 'vsdx' } export interface DiagramElement { id: string; type: string; label?: string; properties?: Record; geometry?: { x: number; y: number; width: number; height: number; }; style?: string; } export interface DiagramConnection { id: string; source: string; target: string; label?: string; style?: string; properties?: Record; } export interface DiagramData { elements: DiagramElement[]; connections: DiagramConnection[]; metadata: { type: DiagramType; format: DiagramFormat; created: string; modified: string; version: string; }; } export interface TemplateConfig { name: string; type: DiagramType; description: string; elements: DiagramElement[]; connections: DiagramConnection[]; defaultStyle?: string; } // AI Analysis Types export interface DiagramAnalysis { diagramType: DiagramType; confidence: number; entities: string[]; relationships: Array<{ from: string; to: string; type: string; label?: string; }>; keywords: string[]; reasoning: string; } export interface IntelligentDiagramInput { description: string; format?: DiagramFormat; preferences?: { language?: string; complexity?: 'simple' | 'detailed'; theme?: 'default' | 'dark' | 'minimal'; }; } export interface IntelligentDiagramResult { success: boolean; diagramType: DiagramType; format: DiagramFormat; fileName: string; content: string; metadata: { analysis: DiagramAnalysis; entities: string[]; relationships: Array<{ from: string; to: string; type: string; label?: string; }>; generatedAt: string; }; error?: string; } export interface ProgressUpdate { type: 'progress' | 'content' | 'complete' | 'error'; status?: string; progress?: number; message?: string; data?: any; }