import { GraphLayout, GraphLayoutProps } from "../../core/graph-layout.js"; import type { Graph, NodeInterface, EdgeInterface } from "../../graph/graph.js"; import * as d3 from 'd3-force'; export type ForceMultiGraphLayoutProps = GraphLayoutProps & { alpha?: number; nBodyStrength?: number; nBodyDistanceMin?: number; nBodyDistanceMax?: number; }; export declare class ForceMultiGraphLayout extends GraphLayout { static defaultProps: { readonly alpha: 3; readonly nBodyStrength: -1200; readonly nBodyDistanceMin: 100; readonly nBodyDistanceMax: 1400; readonly onLayoutStart: (detail?: import("../..").GraphLayoutEventDetail) => void; readonly onLayoutChange: (detail?: import("../..").GraphLayoutEventDetail) => void; readonly onLayoutDone: (detail?: import("../..").GraphLayoutEventDetail) => void; readonly onLayoutError: (error?: unknown) => void; }; _name: string; _graph: Graph | null; _d3Graph: { nodes: any[]; edges: any[]; }; _nodeMap: Map; _edgeMap: Map; _simulator: d3.Simulation | null; constructor(props?: ForceMultiGraphLayoutProps); initializeGraph(graph: Graph): void; _strength: (d3Edge: any) => number; _generateSimulator(): void; start(): void; resume(): void; stop(): void; update(): void; updateGraph(graph: Graph): void; getNodePosition: (node: NodeInterface) => [number, number]; getEdgePosition: (edge: EdgeInterface) => { type: string; sourcePosition: any[]; targetPosition: any[]; controlPoints: number[][]; }; lockNodePosition: (node: NodeInterface, x: number, y: number) => void; protected _updateBounds(): void; } //# sourceMappingURL=force-multi-graph-layout.d.ts.map