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";
/**
 * Treemap component props
 */
export interface TreemapProps<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;
    labelMode?: "leaf" | "parent" | "all";
    nodeLabel?: ChartAccessor<TNode, string>;
    padding?: number;
    paddingTop?: number;
    /**
     * Per-node style overlay. The returned style is merged on top of
     * Treemap's built-in colorBy/colorByDepth/default fill, then primitive
     * props and selection state are applied. Use this for root hiding,
     * custom borders, or per-depth opacity without re-implementing color
     * encoding.
     */
    nodeStyle?: (d: Datum) => Datum;
    enableHover?: boolean;
    legendInteraction?: LegendInteractionMode;
    tooltip?: TooltipProp;
    frameProps?: Partial<Omit<StreamNetworkFrameProps, "edges" | "size">>;
}
/**
 * Treemap - Visualize a hierarchy as nested rectangles sized by value.
 *
 * Each leaf becomes a rectangle whose area is proportional to
 * `valueAccessor`; ancestors enclose their descendants. Better than
 * {@link CirclePack} when precise area comparison matters; better than
 * {@link TreeDiagram} when leaf count is large.
 *
 * @example
 * ```tsx
 * // Department budgets
 * <Treemap
 *   data={{
 *     name: "Total",
 *     children: [
 *       { name: "Eng", children: [
 *         { name: "Frontend", value: 120 },
 *         { name: "Platform", value: 90 },
 *       ]},
 *       { name: "Sales", value: 200 },
 *       { name: "Marketing", value: 60 },
 *     ],
 *   }}
 *   valueAccessor="value"
 *   childrenAccessor="children"
 *   showLabels
 * />
 * ```
 *
 * @example
 * ```tsx
 * // Color leaves by their parent (each top-level branch gets its own color)
 * <Treemap
 *   data={hierarchyRoot}
 *   valueAccessor="size"
 *   colorBy="parent"
 * />
 * ```
 */
export declare function Treemap<TNode extends Datum = Datum>(props: TreemapProps<TNode>): React.JSX.Element;
export declare namespace Treemap {
    var displayName: string;
}
