import type { D3InterpolateName } from '../../../colors'; import type { Vec2 } from '../../../math'; import type { FontSpec } from '../text-metrics'; import type { LegendItem } from '../types'; import type { PositionedArc, SunburstLabelText, SunburstNodeHandlerProps } from './hierarchy-layout'; interface LabeledNode { id: string | number; label?: string; label_short?: string; value: number; fraction: number; parent_fraction?: number; } export declare const node_display_name: (node: LabeledNode) => string; export declare function node_label_str(node: LabeledNode, label_text: SunburstLabelText, value_format: string): string; export declare function node_label_variants(node: LabeledNode, label_text: SunburstLabelText, value_format: string): { text: string; extended?: string; short?: string; }; export declare const resolve_label_font: (svg_element: SVGSVGElement | null) => FontSpec; export interface HierarchyNodeInfo { variants: { text: string; width: number; }[]; aria: string; fill: string; label_fill: string; clickable?: boolean; } export declare function compute_node_infos(arcs: readonly PositionedArc[], opts: { label_text: SunburstLabelText; value_format: string; font: Readonly; color_for: (arc: PositionedArc) => string; clickable?: (arc: PositionedArc) => boolean; }): HierarchyNodeInfo[]; export declare function compute_metric_colors(arcs: readonly PositionedArc[], color_values: ((arc: PositionedArc) => number | null) | undefined, color_scale: D3InterpolateName, color_range?: Vec2): { range: Vec2; colors: string[]; } | null; export declare function compute_node_dim(arcs: readonly PositionedArc[], muted_ids: ReadonlySet, hovered_idx: number | null): { opacity: number; label_opacity: number | undefined; }[]; export declare function toggle_muted(muted_ids: Set, id: string | number | undefined): void; export declare function hierarchy_legend_items(depth1_arcs: readonly PositionedArc[], muted_ids: ReadonlySet, color_for: (arc: PositionedArc) => string): LegendItem[]; export declare function node_handler_props(arcs: readonly PositionedArc[], arc: PositionedArc, color: string): SunburstNodeHandlerProps; export declare function selection_within(wrapper: HTMLElement | undefined): boolean; export declare function ancestor_chain(arcs: readonly PositionedArc[], zoom_root: PositionedArc | null): PositionedArc[]; type PreorderNode = Pick; export declare function arrow_nav_target(nodes: readonly PreorderNode[], is_visible: (idx: number) => boolean, current_idx: number, key: string): number | null; export declare const COLOR_BAR_GAP = 8; type ColorBarLayoutProps = { orientation?: `horizontal` | `vertical`; tick_side?: `primary` | `secondary` | `inside`; tick_labels?: number | unknown[]; }; export type ColorBarSide = `left` | `right`; type ColorBarLayout = { side: ColorBarSide; is_vertical: boolean; tick_side: `primary` | `secondary` | `inside`; tick_padding: string; inner_width: number; inner_height: number; plot_left: number; offset_px: number; }; export declare function color_bar_layout(opts: { color_bar: ColorBarLayoutProps | null | undefined; side: ColorBarSide; measured: { width: number; height: number; }; avail_width: number; avail_height: number; pad: { l: number; r: number; }; tick_space_var: string; }): ColorBarLayout; export {};