export interface ConvertedNode {
  type: 'rectangle' | 'ellipse' | 'diamond' | 'circle' | 'subroutine' | 'text'
  id: string
  x: number
  y: number
  width: number
  height: number
  text: string
  fill?: string
  stroke?: string
}

export interface ConvertedEdge {
  startId: string
  endId: string
  label?: string
  points: { x: number; y: number }[]
  /** 自动计算的世界坐标端点 */
  startPoint: { x: number; y: number }
  endPoint: { x: number; y: number }
  strokeStyle?: 'solid' | 'dashed' | 'dotted'
}

export interface MermaidConversionResult {
  nodes: ConvertedNode[]
  edges: ConvertedEdge[]
  bounds: { x: number; y: number; width: number; height: number }
}

export interface MermaidConvertOptions {
  offsetX?: number
  offsetY?: number
}
