import type { ReactNode } from 'react'; import { type ResolvedTheme, type ThemeContextValue, type ThemeMode } from '../index.js'; export declare const ThemeContext: import("react").Context; export interface ThemeProviderProps { children: ReactNode; /** Initial theme if nothing is in localStorage yet. Default: 'system'. */ defaultTheme?: ThemeMode; /** * localStorage key override. Defaults to `THEME_STORAGE_KEY = 'bsuite_theme'`. * Only set this during migrations from a legacy key. */ storageKey?: string; } /** * Write BOTH theme signals, because the estate reads both and they had different * owners. * * This function used to set only the `light` / `dark` CLASS. The pre-React FOUC * script in each app's index.html sets the class AND `data-theme`, so the two * agreed exactly until this provider mounted and moved one of them. * * Measured on d.crm.crm7.app 2026-08-22: * * * * That is not cosmetic. crm7's tailwind.config.js declares * `darkMode: ['class', '[data-theme="dark"]']`, where the custom selector * REPLACES `.dark` — so every `dark:` utility keys on `data-theme`, while the * colour custom properties in theme.css key on the `.dark` class. Light tokens * active, dark utilities applying, at the same time. * * The visible symptom was every card rendering flat: `dark:shadow-card-glow` * applied in light mode, resolving `--glow-card` to its LIGHT value of `none`, * which set `--tw-shadow: none` and cancelled the light shadow underneath it. * Shadows are only where it showed. Every `dark:` utility in the app was affected. * * One writer, both signals, so they cannot drift again. */ export declare function applyTheme(resolved: ResolvedTheme): void; export declare function ThemeProvider({ children, defaultTheme, storageKey, }: ThemeProviderProps): import("react").JSX.Element; //# sourceMappingURL=ThemeProvider.d.ts.map