import type { SankeyData, SankeyOptions, SankeyLinkDatum, SankeyNodeDatum, SankeyLinkElement, SankeyNodeElement, HierarchyNodeDatum } from './interface'; export declare class SankeyLayout { private options; private _getNodeKey?; private _alignFunc; private _maxDepth; private _gapY; private _viewBox; private _nodeMap; private _isHierarchic?; private _logger; static defaultOptions: Partial; constructor(options?: SankeyOptions); layout(data: SankeyData, config: { x0: number; x1: number; y0: number; y1: number; } | { width: number; height: number; }): { nodes: SankeyNodeElement[]; links: SankeyLinkElement[]; columns: SankeyNodeElement[][]; }; computeHierarchicNodeLinks(originalNodes: HierarchyNodeDatum[]): { nodes: SankeyNodeElement[]; links: SankeyLinkElement[]; nodeMap: Record; }; computeSourceTargetNodeLinks(data: { nodes?: SankeyNodeDatum[]; links: SankeyLinkDatum[]; }): { nodeMap: Record; nodes: SankeyNodeElement[]; links: SankeyLinkElement[]; }; computeNodeLinks(data: SankeyData): { nodes: SankeyNodeElement[]; links: SankeyLinkElement[]; nodeMap: Record; }; computeNodeValues(nodes: SankeyNodeElement[]): void; computeNodeDepths(nodes: SankeyNodeElement[]): void; computeNodeEndDepths(nodes: SankeyNodeElement[]): void; computeNodeLayers(nodes: SankeyNodeElement[]): SankeyNodeElement[][]; initializeNodeBreadths(columns: SankeyNodeElement[][]): void; computeNodeBreadths(nodes: SankeyNodeElement[]): SankeyNodeElement[][]; relaxLeftToRight(columns: SankeyNodeElement[][], alpha: number, beta: number): void; relaxRightToLeft(columns: SankeyNodeElement[][], alpha: number, beta: number): void; resolveCollisions(nodes: SankeyNodeElement[], alpha: number): void; resolveCollisionsTopToBottom(nodes: SankeyNodeElement[], y: number, i: number, alpha: number): void; resolveCollisionsBottomToTop(nodes: SankeyNodeElement[], y: number, i: number, alpha: number): void; targetTop(source: SankeyNodeElement, target: SankeyNodeElement): number; sourceTop(source: SankeyNodeElement, target: SankeyNodeElement): number; computeLinkBreadthsNoOverlap(nodes: SankeyNodeElement[]): void; computeLinkBreadthsOverlap(nodes: SankeyNodeElement[]): void; computeLinkBreadths(nodes: SankeyNodeElement[]): void; reorderNodeLinks(node: SankeyNodeElement): void; reorderLinks(nodes: SankeyNodeElement[]): void; private _ascendingSourceBreadth; private _ascendingTargetBreadth; }