import { type AgSankeySeriesNodeStyle, type AgSankeySeriesOptions, _ModuleSupport } from 'ag-charts-community';
import { type DynamicContext, type NormalisedColorType } from 'ag-charts-core';
import { type FlowLinkDatumIndex, type FlowNodeDatumIndex } from '../flow-proportion/flowDatumIndex';
import { FlowProportionSeries } from '../flow-proportion/flowProportionSeries';
import { SankeyLink } from './sankeyLink';
import { type SankeyDatum, type SankeyLinkDatum, type SankeyNodeDatum, type SankeyNodeLabelDatum, SankeySeriesProperties } from './sankeySeriesProperties';
export declare class SankeySeries extends FlowProportionSeries<SankeyNodeDatum, SankeyLinkDatum, SankeyNodeLabelDatum, AgSankeySeriesOptions, SankeySeriesProperties, _ModuleSupport.Rect<SankeyNodeDatum>, SankeyLink<SankeyLinkDatum>> {
    static readonly className = "SankeySeries";
    static readonly type: "sankey";
    properties: SankeySeriesProperties;
    constructor(moduleCtx: DynamicContext<_ModuleSupport.ChartRegistry>);
    private isLabelEnabled;
    protected linkFactory(): SankeyLink<SankeyLinkDatum>;
    protected nodeFactory(): _ModuleSupport.Rect<SankeyNodeDatum>;
    createNodeData(): {
        itemId: string;
        nodeData: SankeyDatum[];
        labelData: SankeyNodeLabelDatum[];
    } | undefined;
    private createNode;
    private createLink;
    private initialiseColumns;
    private assignNodesToColumns;
    private getNodeColumn;
    private getColumnLabelInsets;
    private positionNodesInColumnsX;
    private createGhostNodesAndColumnDiffs;
    private createNodeGhostNodes;
    private weightNodes;
    private getScaleAndSpacing;
    private positionNodesInColumnsY;
    private sortAndPositionLinks;
    private createNodesNodeData;
    private createNodeLabelData;
    private getNodeLabelPlacement;
    private createLinksNodeData;
    private sortNodes;
    protected updateLabelSelection(opts: {
        labelData: SankeyNodeLabelDatum[];
        labelSelection: _ModuleSupport.Selection<SankeyNodeLabelDatum, _ModuleSupport.TransformableText<SankeyNodeLabelDatum>>;
    }): _ModuleSupport.Selection<SankeyNodeLabelDatum, _ModuleSupport.TransformableText<SankeyNodeLabelDatum>>;
    protected updateLabelNodes(opts: {
        labelSelection: _ModuleSupport.Selection<SankeyNodeLabelDatum, _ModuleSupport.TransformableText<SankeyNodeLabelDatum>>;
    }): void;
    protected updateNodeSelection(opts: {
        nodeData: SankeyNodeDatum[];
        datumSelection: _ModuleSupport.Selection<SankeyNodeDatum, _ModuleSupport.Rect<SankeyNodeDatum>>;
    }): _ModuleSupport.Selection<SankeyNodeDatum, _ModuleSupport.Rect<SankeyNodeDatum>>;
    protected getNodeStyle(nodeDatum: Partial<SankeyNodeDatum>, fromNodeDatumIndex: FlowNodeDatumIndex, isHighlight: boolean): Required<import("ag-charts-community").AgSankeySeriesLinkStyle> & Required<AgSankeySeriesNodeStyle> & Partial<AgSankeySeriesOptions<any, unknown> & {
        fill: NormalisedColorType;
        fillOpacity: number;
        stroke: string;
        strokeWidth: number;
        strokeOpacity: number;
        lineDash: number[];
        lineDashOffset: number;
        opacity: number;
    }> & Partial<AgSankeySeriesOptions<any, unknown> & {
        fill: NormalisedColorType;
        fillOpacity: number;
        stroke: string;
        strokeWidth: number;
        strokeOpacity: number;
        lineDash: number[];
        lineDashOffset: number;
        opacity: number;
    }>;
    private makeItemStylerParams;
    protected updateNodeNodes(opts: {
        datumSelection: _ModuleSupport.Selection<SankeyNodeDatum, _ModuleSupport.Rect<SankeyNodeDatum>>;
        isHighlight: boolean;
    }): void;
    private getShapeFillBBox;
    protected updateLinkSelection(opts: {
        nodeData: SankeyLinkDatum[];
        datumSelection: _ModuleSupport.Selection<SankeyLinkDatum, SankeyLink<SankeyLinkDatum>>;
    }): _ModuleSupport.Selection<SankeyLinkDatum, SankeyLink<SankeyLinkDatum>>;
    protected getLinkStyle(datum: SankeyLinkDatum['datum'], datumIndex: FlowLinkDatumIndex, fromNodeDatumIndex: FlowNodeDatumIndex, isHighlight: boolean): Required<import("ag-charts-community").AgSankeySeriesLinkStyle> & Required<AgSankeySeriesNodeStyle> & Partial<AgSankeySeriesOptions<any, unknown> & {
        fill: NormalisedColorType;
        fillOpacity: number;
        stroke: string;
        strokeWidth: number;
        strokeOpacity: number;
        lineDash: number[];
        lineDashOffset: number;
        opacity: number;
    }> & Partial<AgSankeySeriesOptions<any, unknown> & {
        fill: NormalisedColorType;
        fillOpacity: number;
        stroke: string;
        strokeWidth: number;
        strokeOpacity: number;
        lineDash: number[];
        lineDashOffset: number;
        opacity: number;
    }>;
    protected updateLinkNodes(opts: {
        datumSelection: _ModuleSupport.Selection<SankeyLinkDatum, SankeyLink<SankeyLinkDatum>>;
        isHighlight: boolean;
    }): void;
    protected computeFocusBounds(node: _ModuleSupport.Rect | SankeyLink): _ModuleSupport.BBox | _ModuleSupport.Path | undefined;
    protected hasItemStylers(): boolean;
}
