import { ReactNode } from 'react'; import { PartialThemeBreakpoints, PartialThemeFonts, ThemeCustomColors } from '../../types'; export interface ThemeProviderProps { /** React children to render within the theme context. */ children: ReactNode; /** Optional color mode: 'light' or 'dark'. If not provided, defaults to 'light'. */ colorMode?: 'light' | 'dark'; /** Optional seed color used to generate MD3 theme. Defaults to #6750A4 if omitted. */ seedColor?: string; /** Optional semantic seed colors map (core + augmented). */ colors?: ThemeCustomColors; /** Optional responsive breakpoints map. */ breakpoints?: PartialThemeBreakpoints; /** Optional font class map keyed by theme font token name. */ fonts?: PartialThemeFonts; } /** * Provides a ThemeContext to all descendant components using Material Design 3 color tokens. * * - Dynamically generates full theme schemes (`light` and `dark`) based on the provided `seedColor` * and optional `colors`. * - Injects resolved colors as CSS custom properties into the DOM (`:root` and `.dark`). * - Automatically toggles the `.dark` class on `` based on `colorMode`. * - Exposes utility functions via context: * - `setTheme`: updates the full theme object * - `setDarkMode`: enables/disables dark mode * - `getColorValue`: gets current color value (light or dark based on mode) * - `getThemeColorValue`: gets any color from a specified scheme (`light` or `dark`) * * This provider must wrap your application to enable theming and contextual access to color tokens. * * @param props - Theme provider props. * @param props.children - React children rendered within the theme context. * @param props.colorMode - Optional color mode: `'light'` or `'dark'`. Defaults to `'light'`. * @param props.seedColor - Optional base color used to generate the theme. Defaults to `#6750A4`. * @param props.colors - Optional semantic seed colors map (core + augmented via `CustomColors`). * * @example * ```tsx * * * * ``` * * @privateRemarks * The provider intentionally computes generated schemes during state initialization and once again * in the `[colors, seedColor]` effect. This keeps theme token names available on first render, * including setups without `ColorRegistry`, at the cost of an extra computation. * * @category Components * @group Theme */ export declare const ThemeProvider: ({ children, colorMode, seedColor, colors, breakpoints, fonts, }: ThemeProviderProps) => import("react/jsx-runtime").JSX.Element;