import * as d3 from 'd3';
import type { LayoutMapping, XYPosition } from 'graphology-layout/utils';
import type { D3SimulationEdge, DirectionType, GraphTiers, SimulationGraph, SimulationNode, SimulationNodeWithCategory } from '../../../types';
import type { LayoutComputationResult } from '../common';
import type { SpringLayoutParams } from '../spring-layout';
/**
 * Apply forces which are needed as part of a tiered layout.
 * There is one force which snaps the nodes to the relevant layers and another force ordering the nodes within the layers.
 *
 * @param simulation the D3 simulation
 * @param graph the simulation graph
 * @param nodes array of the nodes
 * @param tiers the tiers passed to the layout
 * @param tiersSeparation the separation between the tiers
 * @param orientation the orientation of the layout
 */
export declare function applyTierForces(simulation: d3.Simulation<SimulationNode, D3SimulationEdge>, graph: SimulationGraph, nodes: SimulationNodeWithCategory[], tiers: GraphTiers, tiersSeparation: number, orientation: DirectionType): void;
export default function compute(layoutParams: SpringLayoutParams, graph: SimulationGraph, forceUpdate: (layout: LayoutMapping<XYPosition>) => void): LayoutComputationResult;
//# sourceMappingURL=spring.d.ts.map