import type { Rect } from '../core/layout'; import type { FontSpec } from '../core/text-metrics'; import type { TreemapArc } from './treemap'; import type { ClassValue } from 'svelte/elements'; export type TreemapLabelFit = `hide` | `shrink` | `clip`; export interface TreemapLabelLine { text: string; class?: ClassValue; font_scale?: number; font_weight?: string | number; opacity?: number; fill?: string; } type TreemapLabelContent = string | TreemapLabelLine | null | undefined; export type TreemapLabelFormatter = Record> = (arc: TreemapArc) => TreemapLabelContent | readonly TreemapLabelContent[]; export interface TreemapLabelBlock { lines: readonly TreemapLabelLine[]; font_size: number; width: number; height: number; } export interface TreemapLabelPlacement { x: number; lines: (TreemapLabelLine & { y: number; })[]; font_size: number; header: boolean; dominant_baseline: `central`; transform?: string; } export declare const safe_font_size: (font_size: number, fallback: number) => number; export declare function normalize_treemap_label_lines(content: ReturnType): TreemapLabelLine[]; export declare function measure_treemap_label_block(lines: readonly TreemapLabelLine[], font_size: number, font: Readonly): TreemapLabelBlock; export declare function place_treemap_label({ rect, block, header, fit, min_font_size, padding_top, margin, }: { rect: Rect; block: TreemapLabelBlock; header: boolean; fit: TreemapLabelFit; min_font_size: number; padding_top: number; margin: number; }): TreemapLabelPlacement | null; export {};