import { AxisFormatConfig, ThresholdBand } from '../../types.js'; /** * Co-located helpers for GaugeChart: pure geometry/value math and threshold * parsing extracted from the component so the render body stays flat. Pure * extraction — no behaviour change. */ export declare const START_ANGLE: number; export declare const END_ANGLE: number; export declare const TRACK_COLOR = "#e2e8f0"; export declare const DEFAULT_FILL = "#6366f1"; export declare function parseNum(v: unknown): number | null; export declare function clamp(v: number, lo: number, hi: number): number; export declare function valueToAngle(value: number, min: number, max: number): number; export declare function resolveColor(fraction: number, thresholds: ThresholdBand[]): string; export declare function buildArcPath(innerRadius: number, outerRadius: number, startAngle: number, endAngle: number): string; /** Parse the displayConfig.thresholds value (array or JSON string) into bands. */ export declare function parseThresholds(raw: unknown): ThresholdBand[]; export interface ThresholdArcBand { color: string; start: number; end: number; } /** Build the outer-ring threshold arc bands (in fraction space 0..1). */ export declare function buildThresholdBands(thresholds: ThresholdBand[]): ThresholdArcBand[]; export interface GaugeGeometry { effectiveMax: number; clampedValue: number; fraction: number; fillColor: string; fillAngle: number; needleAngle: number; } /** Compute the gauge's clamped value, fraction, fill colour, and angles. */ export declare function computeGaugeGeometry(rawValue: number, minValue: number, maxValue: number, thresholds: ThresholdBand[]): GaugeGeometry; /** Format a gauge value with the optional axis format, else locale string. */ export declare function formatGaugeValue(value: number, yAxisFormat?: AxisFormatConfig): string;