import type { Datum } from "../shared/datumTypes";
import * as React from "react";
import type { StreamNetworkFrameProps } from "../../stream/networkTypes";
import type { RealtimeFrameHandle } from "../../realtime/types";
import type { BaseChartProps, ChartAccessor } from "../shared/types";
import { type TooltipProp } from "../../Tooltip/Tooltip";
import type { LegendInteractionMode } from "../shared/hooks";
/**
 * SankeyDiagram component props
 */
export interface SankeyDiagramProps<TNode extends Datum = Datum, TEdge extends Datum = Datum> extends BaseChartProps {
    nodes?: TNode[];
    edges?: TEdge[];
    sourceAccessor?: ChartAccessor<TEdge, string>;
    targetAccessor?: ChartAccessor<TEdge, string>;
    valueAccessor?: ChartAccessor<TEdge, number>;
    nodeIdAccessor?: ChartAccessor<TNode, string>;
    colorBy?: ChartAccessor<TNode, string>;
    colorScheme?: string | string[];
    edgeColorBy?: "source" | "target" | "gradient" | ((d: Datum) => string);
    orientation?: "horizontal" | "vertical";
    nodeAlign?: "justify" | "left" | "right" | "center";
    nodePaddingRatio?: number;
    nodeWidth?: number;
    nodeLabel?: ChartAccessor<TNode, string>;
    showLabels?: boolean;
    enableHover?: boolean;
    legendInteraction?: LegendInteractionMode;
    edgeOpacity?: number;
    edgeSort?: (a: any, b: any) => number;
    tooltip?: TooltipProp;
    frameProps?: Partial<Omit<StreamNetworkFrameProps, "edges" | "size">>;
}
/**
 * SankeyDiagram - Visualize flow and magnitude of movement between nodes
 *
 * Wraps StreamNetworkFrame (canvas-first) for Sankey flow visualization.
 */
export declare const SankeyDiagram: {
    <TNode extends Datum = Datum, TEdge extends Datum = Datum>(props: SankeyDiagramProps<TNode, TEdge> & React.RefAttributes<RealtimeFrameHandle>): React.ReactElement | null;
    displayName?: string;
};
