import type { Group } from '../shapes/Group'; import type { DiagramEdge, DiagramNode } from './types'; export interface ForceLayoutOptions { width?: number; height?: number; iterations?: number; seed?: number; repulsion?: number; attraction?: number; damping?: number; } export interface ForceNode { id: string; x?: number; y?: number; } export interface ForceEdge { from: string; to: string; } /** Physics-based force-directed layout with seeded reproducibility. */ export declare function forceDirectedLayout(nodes: ForceNode[], edges: ForceEdge[], options?: ForceLayoutOptions): Map; /** Radial layout for mind maps — children arranged in a circle around center. */ export declare function radialLayout(group: Group, cx: number, cy: number, innerRadius: number, outerRadius: number): void; /** * Mermaid-style mind map: root in center, branches split left/right, * leaves stacked outward from each branch. */ export declare function mindMapLayout(group: Group, canvasW: number, canvasH: number): void; /** Auto-layout diagram nodes in a tree structure */ export declare function layoutDiagram(group: Group, levelGap?: number, siblingGap?: number): void; /** Horizontal pipeline layout — stages in a row */ export declare function pipelineLayout(group: Group, gap?: number, padding?: number, canvasH?: number): void; /** Position diagram nodes from data using force layout */ export declare function layoutNodesForce(nodes: DiagramNode[], edges: DiagramEdge[], options?: ForceLayoutOptions): Map;