import { ReactNode } from '../../../node_modules/react'; import { ThemeOptions } from '@mui/material/styles'; import { FontKey } from '../../theme'; export type ThemeMode = "light" | "dark" | "system"; export interface ExotelThemeProviderProps { children: ReactNode; /** * The initial color mode applied on first visit (before any user toggle). * - `'light'` — start in light mode (default) * - `'dark'` — start in dark mode * - `'system'` — follow the user's OS preference * * After the user changes the mode via `useThemeMode().setMode()`, * their choice is persisted and takes priority over this value. */ defaultMode?: ThemeMode; /** * Initial font. Preset key from `FONT_OPTIONS` (`"ibm-plex-sans"` (default) | * `"inter"` | `"noto-sans"` (deprecated)) or any raw CSS `font-family`. Custom * families require the consumer to load their own `@font-face` (or supply * `themeOverrides.typography.fontFamily`). Can be changed at runtime via * `useFont().setFont()`. */ defaultFont?: FontKey; /** * Locale string passed to the dayjs date adapter (e.g. "en", "de", "ja"). * Controls formatting for all date/time picker components. */ adapterLocale?: string; /** * Partial theme overrides deep-merged on top of the base Exotel theme. * Use this to extend palette colors, add component overrides, or * adjust typography without forking the design system theme. */ themeOverrides?: ThemeOptions; /** * Arbitrary data accessible anywhere via `useSignal().data`. * Use this to pass global app-level context (tenant info, feature flags, * permissions, etc.) without creating additional providers. */ contextData?: Record; } /** Public hook return type for `useThemeMode`. */ export interface UseThemeModeReturn { /** Current resolved mode (`'light'` or `'dark'`). `undefined` during SSR. */ mode: ThemeMode; /** Set the mode explicitly. */ setMode: (mode: ThemeMode) => void; /** Toggle between light and dark. */ toggleMode: () => void; } export declare function ExotelThemeProvider({ children, defaultMode, defaultFont, adapterLocale, themeOverrides, contextData, }: ExotelThemeProviderProps): import("react/jsx-runtime").JSX.Element;