import type { Datum } from "../shared/datumTypes";
import * as React from "react";
import type { StreamNetworkFrameProps } from "../../stream/networkTypes";
import type { BaseChartProps, ChartAccessor } from "../shared/types";
import { type TooltipProp } from "../../Tooltip/Tooltip";
import type { LegendInteractionMode } from "../shared/hooks";
/**
 * CirclePack component props
 */
export interface CirclePackProps<TNode extends Datum = Datum> extends BaseChartProps {
    data: TNode;
    childrenAccessor?: ChartAccessor<TNode, TNode[]>;
    valueAccessor?: ChartAccessor<TNode, number>;
    nodeIdAccessor?: ChartAccessor<TNode, string>;
    colorBy?: ChartAccessor<TNode, string | number>;
    colorScheme?: string | string[];
    colorByDepth?: boolean;
    showLabels?: boolean;
    nodeLabel?: ChartAccessor<TNode, string>;
    circleOpacity?: number;
    padding?: number;
    enableHover?: boolean;
    legendInteraction?: LegendInteractionMode;
    tooltip?: TooltipProp;
    frameProps?: Partial<Omit<StreamNetworkFrameProps, "edges" | "size">>;
}
/**
 * CirclePack - Visualize hierarchical data as nested circles.
 *
 * Each leaf becomes a circle sized by `valueAccessor`; parents enclose
 * their children. Best for hierarchies where size encoding matters more
 * than precise comparisons.
 *
 * For rectangular tiling of the same data shape use {@link Treemap}; for
 * radial parent→child connections use {@link TreeDiagram}.
 *
 * @example
 * ```tsx
 * // Filesystem-style hierarchy sized by file size
 * <CirclePack
 *   data={{
 *     name: "src",
 *     children: [
 *       { name: "components", children: [
 *         { name: "Chart.tsx", value: 1200 },
 *         { name: "Frame.tsx", value: 800 },
 *       ]},
 *       { name: "utils", children: [{ name: "color.ts", value: 400 }] },
 *     ],
 *   }}
 *   valueAccessor="value"
 *   childrenAccessor="children"
 * />
 * ```
 *
 * @example
 * ```tsx
 * // Color by depth instead of by leaf identity
 * <CirclePack
 *   data={hierarchyRoot}
 *   valueAccessor="size"
 *   colorByDepth
 *   showLabels
 * />
 * ```
 */
export declare function CirclePack<TNode extends Datum = Datum>(props: CirclePackProps<TNode>): React.JSX.Element;
export declare namespace CirclePack {
    var displayName: string;
}
