import type { App } from '../App'; import type { Node } from '../Node'; import type { UiThemeTokens } from '../components/uiTheme'; /** Dashboard widget palette — mirrors UI semantic token names for dark analytics panels. */ export declare const DASHBOARD: { readonly panel: "#151d2e"; readonly panelStroke: "#2a3654"; readonly face: "#0f172a"; readonly text: "#e2e8f0"; readonly textMuted: "#94a3b8"; readonly textDim: "#64748b"; /** Axis / legend label size (px). */ readonly fontSize: 12; readonly fontSizeSm: 10; readonly fontSizeTitle: 13; readonly primary: "#3b82f6"; readonly secondary: "#ef4444"; readonly success: "#22c55e"; readonly warning: "#f59e0b"; readonly danger: "#ef4444"; readonly dangerDark: "#dc2626"; readonly inactive: "#374151"; readonly inactiveBar: "#475569"; readonly gaugeTrack: "#374151"; readonly gaugeNeedle: "#3b82f6"; readonly speedoNeedle: "#ef4444"; readonly chartBg: "#111827"; readonly chartGrid: "#334155"; readonly chartAxis: "#64748b"; readonly chartLine: "#3b82f6"; readonly chartArea: "rgba(59, 130, 246, 0.35)"; readonly chartPlot: "#0f172a"; readonly chartTooltipBg: "#1e293b"; readonly chartTooltipBorder: "#475569"; readonly chartCrosshair: "rgba(148, 163, 184, 0.6)"; readonly chartDot: "#60a5fa"; readonly barFill: "#3b82f6"; readonly compassFace: "#1c2740"; readonly compassRing: "#475569"; readonly compassHub: "#334155"; readonly thermometerTube: "#334155"; readonly thermometerBorder: "#475569"; readonly meterTrack: "#374151"; readonly meterFill: "#3b82f6"; readonly clockFace: "#1f2937"; readonly clockRing: "#374151"; readonly clockHand: "#e2e8f0"; readonly clockSecond: "#ef4444"; readonly batteryOutline: "#475569"; readonly batteryTip: "#475569"; readonly knobTrack: "#374151"; readonly knobRing: "#1f2937"; readonly knobIndicator: "#f59e0b"; readonly knobArc: "rgba(245, 158, 11, 0.25)"; readonly clockTick: "#64748b"; readonly clockTickMajor: "#94a3b8"; readonly clockHub: "#374151"; readonly signalActive: "#22c55e"; readonly signalInactive: "#475569"; readonly pieStroke: "#1f2937"; readonly timelineLine: "#475569"; readonly timelineDot: "#3b82f6"; readonly highlight: "#3b82f6"; readonly series: readonly ["#3b82f6", "#ef4444", "#22c55e", "#f59e0b", "#a855f7", "#06b6d4", "#f97316", "#ec4899"]; readonly financialUp: "#22c55e"; readonly financialDown: "#ef4444"; readonly flowLink: "rgba(59, 130, 246, 0.45)"; readonly heatmapLow: "#1e3a5f"; readonly heatmapHigh: "#60a5fa"; }; export type DashboardTheme = { [K in keyof typeof DASHBOARD]: (typeof DASHBOARD)[K] extends readonly string[] ? string[] : (typeof DASHBOARD)[K] extends number ? number : string; }; /** Merge optional UI theme tokens into the dashboard palette (for app-level theming). */ export declare function resolveDashboardTheme(ui?: Partial, pack?: Partial): DashboardTheme; /** Module pack (dashboard + series) stored on the App theme. */ export declare function dashboardPackFromApp(app?: App | null): Partial; /** Sync App-scoped dashboard palette (App init / setUiTheme / create). */ export declare function syncActiveDashboardTheme(tokens?: Partial, app?: App | null, pack?: Partial): DashboardTheme; /** * Current dashboard palette for builders. * Prefer calling inside a create/rebuild (stack); optional `app` uses WeakMap snapshot. */ export declare function getActiveDashboard(app?: App | null): DashboardTheme; /** Run factory/rebuild with a fixed palette on the build stack. */ export declare function runWithDashboardTheme(theme: DashboardTheme, fn: () => R): R; /** Resolve palette for an app without mutating the active theme. */ export declare function getDashboardTheme(app?: App | null): DashboardTheme; /** Rebuild every dashboard widget that exposes `chartRebuild` (gauges + charts). */ export declare function refreshDashboard(root: Node, _app?: App | null): void;