import type { SankeyLink as D3Link, SankeyNode as D3Node } from 'd3-sankey'; import type { Orientation } from '../core/types'; import type { SankeyData, SankeyNodeAlign } from './sankey-types'; interface NodeExtra { node_idx: number; id: string | number; label?: string; color?: string; } interface LinkExtra { link_idx: number; color?: string; label?: string; } export type PositionedNode = D3Node & { node_idx: number; id: string | number; x0: number; x1: number; y0: number; y1: number; value: number; depth: number; }; export type PositionedLink = D3Link & { link_idx: number; width: number; source: PositionedNode; target: PositionedNode; path: string; mid: { x: number; y: number; }; }; interface SankeyLayoutOptions { width: number; height: number; node_width?: number; node_padding?: number; node_align?: SankeyNodeAlign; orientation?: Orientation; iterations?: number; } interface SankeyLayoutResult { nodes: PositionedNode[]; links: PositionedLink[]; } export declare function sankey_from_links(source: readonly number[], target: readonly number[], value: readonly number[], labels?: readonly string[]): SankeyData; export interface SankeyBucketOptions { min_fraction?: number; max_links?: number; other_label?: string; } export declare function bucket_sankey_data>(data: SankeyData, { min_fraction, max_links, other_label }: SankeyBucketOptions): SankeyData; export declare function compute_sankey_layout>(data: SankeyData, opts: SankeyLayoutOptions): SankeyLayoutResult; export {};