import { LayoutActivateParameters, LayoutHandler } from './handler'; import * as d3 from "d3-force"; export interface ForceNodeDatum extends d3.SimulationNodeDatum { id: string; } export interface ForceEdgeDatum { source: string; target: string; } type d3Type = typeof d3; type CreateSimulationFunction = (d3: d3Type, nodes: ForceNodeDatum[], edges: ForceEdgeDatum[]) => d3.Simulation; export type ForceLayoutParameters = { positionFixedByDrag?: boolean; positionFixedByClickWithAltKey?: boolean; noAutoRestartSimulation?: boolean; createSimulation?: CreateSimulationFunction; }; export declare class ForceLayout implements LayoutHandler { private options; private onDeactivate?; private onTick?; constructor(options?: ForceLayoutParameters); activate(parameters: LayoutActivateParameters): void; deactivate(): void; ticked(): void; private createSimulation; private buildNodeLayouts; private forceNodeLayouts; private forceLayoutEdges; private getNodeLayout; } export {};