import type { TreeChartBase } from "./tree-chart"; /** * Common subset of `TreemapChart` / `SunburstChart` reached by the * shared interaction helpers — anything that lives on `TreeChartBase` * plus the pinned/hover/facet-drill state the two charts both declare * with identical shape but on the subclass (so we type it as an * intersection). */ export type TreeInteractChart = TreeChartBase & { _pinnedNodeId: number; _hoveredNodeId: number; _facetDrillRoots: Map; }; /** * Emit `perspective-click` + `perspective-global-filter selected:true` * for a treemap/sunburst node. The path is walked via `ancestorNames` * and split into split-by prefix + group-by levels using * `_splitBy.length` as the boundary; faceted mode keeps the depth-0 * ancestor as the split prefix. */ export declare function emitTreeNodeEvent(chart: TreeInteractChart, nodeId: number, kind: "leaf" | "branch"): Promise; /** * Build tooltip lines for `nodeId`: ancestor name path + aggregate * value + (numeric) color value + per-row tooltip columns from * `_lazyRows` for leaves. The leaf branch awaits the source-view row * fetch; branch nodes have no underlying row so they emit a Children * count instead. */ export declare function buildTreeTooltipLines(chart: TreeInteractChart, nodeId: number): Promise; /** * Pin a tooltip at the chart-supplied anchor. Lines are fetched lazily; * the `_pinnedNodeId` check on resolve discards stale results from a * prior pin or dismissal. */ export declare function showTreePinnedTooltip(chart: TreeInteractChart, nodeId: number, anchor: { cx: number; cy: number; }, renderChromeOverlay: () => void): void; export declare function dismissTreePinnedTooltip(chart: TreeInteractChart): void; /** * Drill the clicked facet (or the whole chart in non-facet mode). * Faceted drill walks up to the facet root (top-level child of * `_rootId`), records the new drill node under that facet's label, and * re-renders. */ export declare function treeDrillTo(chart: TreeInteractChart, nodeId: number, renderFrame: () => void): void;