/**
 * @file SankeyChart.tsx
 * @output Root Sankey container — computes layout and provides context
 * @position Parent component; all Sankey marks are children
 *
 * When columns × minColumnWidth exceeds the container, the chart
 * scrolls horizontally rather than squishing columns together.
 *
 * Accessibility: the svg is exposed as a named image (role="img" + aria-label,
 * overridable via `label`) in both the scrolling and non-scrolling paths, and
 * small graphs are mirrored in a visually hidden From/To/Value table.
 */
import { type ReactNode } from 'react';
import type { SankeyNodeDatum, SankeyLinkDatum, SankeyColumn } from './types';
export interface SankeyChartProps {
    /** Node definitions */
    nodes: SankeyNodeDatum[];
    /** Link definitions */
    links: SankeyLinkDatum[];
    /**
     * Column definitions. Accepts either:
     * - Simple: `string[][]` — arrays of node IDs per column
     * - Rich: `SankeyColumnDef[]` — objects with `ids`, optional `label`
     * - Mixed: any combination
     *
     * If omitted, columns are auto-detected via topological sort.
     */
    columns?: SankeyColumn[];
    /** Chart height in px (default: 320) */
    height?: number;
    /** Node bar width in px (default: 20) */
    nodeWidth?: number;
    /** Vertical gap between sibling nodes (default: 14) */
    nodeGap?: number;
    /**
     * Override all node bar colors with a single CSS color.
     * Both SankeyNode and SankeyLabel read this from context
     * so labels adapt their text color for contrast.
     */
    nodeColor?: string;
    /**
     * Minimum width per column in px (default: 160).
     * When total min width exceeds the container, horizontal scrolling activates.
     */
    minColumnWidth?: number;
    /**
     * Accessible name for the chart, announced by screen readers. Applied to the
     * svg (`role="img"`) and, when the chart scrolls, to the focusable scroll
     * region. Pass a localized string to override the English default.
     *
     * @default 'Sankey chart'
     */
    label?: string;
    /** Chart contents */
    children: ReactNode;
}
/**
 * Root component for Sankey/flow diagrams.
 *
 * Computes layout from nodes + links, exposes positions via context.
 * Width is responsive but enforces minColumnWidth — scrolls when needed.
 *
 * @example
 * ```
 * <SankeyChart
 *   nodes={nodes}
 *   links={links}
 *   columns={[
 *     {ids: ['a', 'b'], label: 'Source'},
 *     {ids: ['c', 'd'], label: 'Target'},
 *   ]}>
 *   <SankeyGrid />
 *   <SankeyLink />
 *   <SankeyNode />
 *   <SankeyLabel />
 * </SankeyChart>
 * ```
 */
export declare function SankeyChart({ nodes, links, columns, height, nodeWidth, nodeGap, nodeColor, minColumnWidth, label, children, }: SankeyChartProps): import("react").JSX.Element;
export declare namespace SankeyChart {
    var displayName: string;
}
//# sourceMappingURL=SankeyChart.d.ts.map