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";
/**
 * ChordDiagram component props
 */
export interface ChordDiagramProps<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" | ((d: Datum) => string);
    padAngle?: number;
    groupWidth?: number;
    sortGroups?: (a: any, b: any) => number;
    nodeLabel?: ChartAccessor<TNode, string>;
    showLabels?: boolean;
    enableHover?: boolean;
    legendInteraction?: LegendInteractionMode;
    edgeOpacity?: number;
    tooltip?: TooltipProp;
    frameProps?: Partial<Omit<StreamNetworkFrameProps, "edges" | "size">>;
}
/**
 * ChordDiagram - Visualize bidirectional flows between a small set of categories.
 *
 * Each node is a wedge around a circle; ribbons inside connect nodes whose
 * `valueAccessor` describes the flow magnitude. Best for ≤30 categories
 * with a square many-to-many relationship matrix.
 *
 * For directed many-step flows prefer {@link SankeyDiagram}; for
 * unbounded networks prefer {@link ForceDirectedGraph}.
 *
 * @example
 * ```tsx
 * // Trade flows between regions
 * <ChordDiagram
 *   nodes={[{ id: "EMEA" }, { id: "Americas" }, { id: "APAC" }]}
 *   edges={[
 *     { source: "EMEA", target: "Americas", value: 32 },
 *     { source: "Americas", target: "APAC", value: 18 },
 *     { source: "APAC", target: "EMEA", value: 24 },
 *   ]}
 *   valueAccessor="value"
 *   showLabels
 * />
 * ```
 *
 * @example
 * ```tsx
 * // Color ribbons by source, custom padAngle
 * <ChordDiagram
 *   nodes={nodes}
 *   edges={edges}
 *   valueAccessor="value"
 *   edgeColorBy="source"
 *   padAngle={0.04}
 * />
 * ```
 */
export declare const ChordDiagram: {
    <TNode extends Datum = Datum, TEdge extends Datum = Datum>(props: ChordDiagramProps<TNode, TEdge> & React.RefAttributes<RealtimeFrameHandle>): React.ReactElement | null;
    displayName?: string;
};
