import type { App } from '../../App'; import type { Group } from '../../shapes/Group'; import type { RoundedRect, TextNode } from '../../shapes/index'; import type { WidgetBounds } from '../layout'; import type { ThemePalette } from '../themes'; export interface DigitalGaugeStyle { panelFill: string; panelStroke: string; labelColor: string; valueColor: string; unitColor: string; barTrack: string; barFill: string; segmentOn: string; segmentOff: string; } export declare function digitalGaugeStyle(theme: ThemePalette): DigitalGaugeStyle; export interface DigitalGaugeOptions { label: string; value: number; max: number; unit?: string; formatValue?: (v: number) => string; showBar?: boolean; showSegments?: boolean; segmentCount?: number; } export interface DigitalGaugeParts { valueText: TextNode; barFill?: RoundedRect; segments?: RoundedRect[]; segmentOn: string; segmentOff: string; } /** LCD-style digital gauge — large readout, label, optional bar/segments. */ export declare function buildDigitalGauge(app: App, group: Group, bounds: WidgetBounds, style: DigitalGaugeStyle, opts: DigitalGaugeOptions): DigitalGaugeParts; export declare function updateDigitalGauge(parts: DigitalGaugeParts, value: number, max: number, format: (v: number) => string, barWidth: number, segmentCount?: number): void;