import { GraphLayout, GraphLayoutProps } from "../../core/graph-layout.js"; import type { Graph, NodeInterface, EdgeInterface } from "../../graph/graph.js"; export type GPUForceLayoutOptions = GraphLayoutProps & { alpha?: number; resumeAlpha?: number; nBodyStrength?: number; nBodyDistanceMin?: number; nBodyDistanceMax?: number; getCollisionRadius?: number; }; /** * @todo this layout should be updated with the organizational and logic improvements made in d3-force */ export declare class GPUForceLayout extends GraphLayout { static defaultProps: Required; protected readonly _name: string; private _d3Graph; private _nodeMap; private _edgeMap; private _graph; private _worker; constructor(options?: GPUForceLayoutOptions); initializeGraph(graph: Graph): void; start(): void; update(): void; _engageWorker(): void; ticked(data: any): void; ended(data: any): void; resume(): void; stop(): void; updateGraph(graph: Graph): void; updateD3Graph(graph: { nodes: any[]; edges: any[]; }): void; getNodePosition: (node: NodeInterface) => [number, number]; getEdgePosition: (edge: EdgeInterface) => { type: string; sourcePosition: any[]; targetPosition: any[]; controlPoints: any[]; }; lockNodePosition: (node: NodeInterface, x: number, y: number) => void; unlockNodePosition: (node: NodeInterface) => void; protected _updateBounds(): void; } //# sourceMappingURL=gpu-force-layout.d.ts.map