import type { DataItem } from "../../core/render/Component"; import { Flow, IFlowSettings, IFlowDataItem, IFlowPrivate, IFlowEvents } from "./Flow"; import { SankeyNodes, ISankeyNodesDataItem } from "./SankeyNodes"; import { SankeyLink } from "./SankeyLink"; import { ListTemplate } from "../../core/util/List"; import * as d3sankey from "d3-sankey"; import type { Bullet } from "../../core/render/Bullet"; export interface ISankeyDataItem extends IFlowDataItem { /** * Link element. */ link: SankeyLink; /** * Source node data item. */ source: DataItem; /** * Target node data item. */ target: DataItem; } export interface ISankeySettings extends IFlowSettings { /** * Orientation of the series. * * @default "horizontal" */ orientation?: "horizontal" | "vertical"; /** * Alignment of nodes. * * @default "left" */ nodeAlign?: "left" | "right" | "justify" | "center"; /** * Tension setting of the link curve. * * Accepts values from `0` to `1`. * * `1` will result in perfectly straight lines. * * @default 0.5 */ linkTension?: number; /** * A custom function to use when sorting nodes. * * @todo test * @ignore */ nodeSort?: (a: d3sankey.SankeyNodeMinimal<{}, {}>, b: d3sankey.SankeyNodeMinimal<{}, {}>) => number | null; /** * A custom function to use when sorting links. * * Use `null` to sort links exactly the way they are presented in data. * * @since 5.4.4 */ linkSort?: null | ((a: d3sankey.SankeyLinkMinimal<{}, {}>, b: d3sankey.SankeyLinkMinimal<{}, {}>) => number | null); } export interface ISankeyPrivate extends IFlowPrivate { } export interface ISankeyEvents extends IFlowEvents { } /** * Sankey series. * * @see {@link https://www.amcharts.com/docs/v5/charts/flow-charts/} for more information * @important */ export declare class Sankey extends Flow { static className: string; static classNames: Array; /** * List of link elements. * * @default new ListTemplate */ readonly links: ListTemplate; protected _afterNew(): void; /** * A series representing sankey nodes. * * @default SankeyNodes.new() */ readonly nodes: SankeyNodes; _settings: ISankeySettings; _privateSettings: ISankeyPrivate; _dataItemSettings: ISankeyDataItem; _events: ISankeyEvents; _d3Sankey: d3sankey.SankeyLayout, {}, {}>; _d3Graph: d3sankey.SankeyGraph<{}, {}> | undefined; _fillGenerator: import("d3-shape").Area<[number, number]>; _strokeGenerator: import("d3-shape").Line<[number, number]>; /** * @ignore */ makeLink(dataItem: DataItem): SankeyLink; /** * @ignore */ updateSankey(): void; _updateLinkColor(dataItem: DataItem): void; protected _getBulletLocation(bullet: Bullet): number; _prepareChildren(): void; } //# sourceMappingURL=Sankey.d.ts.map