export type ClusterTheme = 'classic' | 'sport' | 'digital'; /** Named automotive presets — independent of app `setUiTheme` (Phase 5). */ export declare const AUTOMOTIVE_THEME_PRESETS: readonly ClusterTheme[]; export interface ThemePalette { background: string; dialStroke: string; needleSpeed: string; needleTach: string; text: string; textMuted: string; accent: string; warning: string; ok: string; lampOn: string; lampOff: string; /** * Multiplier for fluid / label typography (1 = preset default). * Driven by app `fontSize` relative to UI base (14px); colors stay dual-system. */ fontScale: number; } /** * Automotive HMI palettes. * These are **not** driven by `app.setUiTheme()` — change via `props.theme` or * `updateAutoWidgetProps(node, { theme: 'sport' })` so clusters keep vehicle-specific look. */ export declare const THEMES: Record; /** Sync automotive label scale from UI `fontSize` (14px → scale 1). */ export declare function syncAutomotiveFontScale(ui: { fontSize?: string; } | undefined, app?: object | null, basePx?: number): number; /** Sync default automotive preset from ThemePack.automotive. */ export declare function syncAutomotiveDefaultPreset(name: ClusterTheme | undefined, app?: object | null): ClusterTheme; export declare function getAutomotiveFontScale(app?: object | null): number; export declare function getDefaultAutomotivePreset(app?: object | null): ClusterTheme; /** Resolve cluster theme name: props.theme → ThemePack.automotive → classic. */ export declare function autoThemeName(props: Record, app?: object | null): ClusterTheme; /** Run a widget build with a component-level font scale (beats app scale). */ export declare function runWithAutomotiveFontScale(scale: number, fn: () => T): T; /** Resolve scale from widget props; null → use app scale. */ export declare function automotiveFontScaleFromProps(props: Record, basePx?: number): number | null; export declare function getTheme(name: string, app?: object | null): ThemePalette; /** Palette from widget props + optional App pack default. */ export declare function themeFromProps(props: Record, app?: object | null): ThemePalette;