import { Simulation } from 'd3-force'; import { ID } from '../../types/id.js'; import { Position } from '../../types/position.js'; import { BaseLayoutWithIterations } from '../base-layout.js'; import { D3ForceCommonOptions, D3ForceLayoutOptions, NodeDatum, EdgeDatum } from './types.js'; declare class D3ForceLayout = EdgeDatum> extends BaseLayoutWithIterations { id: string; simulation: Simulation; private d3Nodes; private d3Edges; protected config: { simulationAttrs: string[]; }; protected getDefaultOptions(): T; protected mergeOptions(base: T, patch?: Partial): T; constructor(options?: Partial); stop(): this; tick(iterations?: number): this; restart(alpha?: number): this; reheat(): this; getAlpha(): number; setAlpha(alpha: number): this; getForce(name: string): any; force(name: string, force: any): this; nodes(): N[]; find(x: number, y: number, radius?: number): N | undefined; setFixedPosition(id: ID, position: Position | null[] | null): void; protected parseOptions(options: Partial): T; protected layout(): Promise; private createD3Copies; protected syncPositionsFromD3(): void; protected initSimulation(): Simulation; protected setSimulation(options: T): Simulation; protected setupForces(simulation: Simulation, options: T): void; private getCenterOptions; protected setupCenterForce(simulation: Simulation, options: T): void; private getManyBodyOptions; protected setupManyBodyForce(simulation: Simulation, options: T): void; private getLinkOptions; protected setupLinkForce(simulation: Simulation, options: T): void; private getCollisionOptions; protected setupCollisionForce(simulation: Simulation, options: T): void; private getXForceOptions; protected setupXForce(simulation: Simulation, options: T): void; private getYForceOptions; protected setupYForce(simulation: Simulation, options: T): void; private getRadialOptions; protected setupRadialForce(simulation: Simulation, options: T): void; protected setupClusterForce(simulation: Simulation, options: T): void; } export { D3ForceLayout, D3ForceLayoutOptions };