import type { DiagramType } from './common/index.js';
/** A single visual element in an Excalidraw diagram. */
export interface ExcalidrawElement {
    id: string;
    type: 'rectangle' | 'diamond' | 'arrow' | 'text' | 'ellipse';
    x: number;
    y: number;
    width: number;
    height: number;
    angle: number;
    strokeColor: string;
    backgroundColor: string;
    fillStyle: 'hachure' | 'solid' | 'cross-hatch';
    strokeWidth: number;
    strokeStyle: 'solid' | 'dashed' | 'dotted';
    roughness: number;
    opacity: number;
    text?: string;
    fontSize?: number;
    fontFamily?: number;
    textAlign?: string;
    verticalAlign?: string;
    startBinding?: {
        elementId: string;
        focus: number;
        gap: number;
    } | null;
    endBinding?: {
        elementId: string;
        focus: number;
        gap: number;
    } | null;
    points?: [number, number][];
    groupIds: string[];
    roundness: {
        type: number;
    } | null;
    boundElements: {
        id: string;
        type: string;
    }[] | null;
    updated: number;
    isDeleted: boolean;
    link: string | null;
    locked: boolean;
}
/** The root Excalidraw file format (version 2). */
export interface ExcalidrawFile {
    type: 'excalidraw';
    version: 2;
    source: 'https://excalidraw.com';
    elements: ExcalidrawElement[];
    appState: {
        viewBackgroundColor: string;
        gridSize: null;
    };
    files: Record<string, never>;
}
/** Input for the generate_diagram tool. */
export interface GenerateDiagramInput {
    description: string;
    diagramType: DiagramType;
    format: 'mermaid' | 'excalidraw';
}
/** Output for the generate_diagram tool. */
export interface GenerateDiagramResult {
    format: 'mermaid' | 'excalidraw';
    diagramType: DiagramType;
    mermaid?: string;
    excalidrawJson?: ExcalidrawFile;
    excalidrawUrl?: string;
}
//# sourceMappingURL=diagram.d.ts.map