import { type ReactNode } from 'react'; import { type EffectiveTheme, type ThemeApi, type ThemeApplyOptions, type ThemePreference } from './themeContract.js'; export type { EffectiveTheme, ThemeApi, ThemeApplyOptions, ThemePreference }; export { THEME_STORAGE_KEYS, applyInitialTheme, createThemeApi, setTheme, type ThemeAppId, } from './themeContract.js'; export interface ThemeContextValue { preference: ThemePreference; effectiveTheme: EffectiveTheme; setTheme: (pref: ThemePreference) => void; } export interface ThemeProviderProps { /** Per-app key from `THEME_STORAGE_KEYS` (e.g. `rpapp-customer-theme`). */ storageKey: string; /** When true, explicit `light` preference adds `.light` to override system dark media. */ lightOverrideEnabled?: boolean; /** When storage empty — admin uses `light` so dark requires an explicit toggle. */ defaultPreference?: ThemePreference; /** When preference is `system`, force this effective theme (admin: `light`). */ systemResolvesTo?: EffectiveTheme; children: ReactNode; } /** * React bridge for DECISION-2 C-Hybrid dark mode. * Wrap the app (or subtree) and read/update theme via `useTheme()`. */ export declare function ThemeProvider({ storageKey, lightOverrideEnabled, defaultPreference, systemResolvesTo, children, }: ThemeProviderProps): JSX.Element; export declare function useTheme(): ThemeContextValue; //# sourceMappingURL=ThemeProvider.d.ts.map