import * as React from 'react'; export interface ThemeContextValue { /** The chosen theme, possibly `'system'`. */ theme: string | undefined; setTheme: (value: string | ((prev: string) => string)) => void; /** The theme actually applied - `'system'` resolved to `'light'`/`'dark'`. */ resolvedTheme: string | undefined; systemTheme: 'light' | 'dark' | undefined; themes: string[]; forcedTheme: string | undefined; /** `false` until the client has mounted - guard theme-dependent UI with this. */ mounted: boolean; } export declare function useThemeContext(): ThemeContextValue; export interface ThemeProviderProps { /** The subtree the theme applies to */ children?: React.ReactNode; /** * Available theme names * @default ['light', 'dark'] */ themes?: string[]; /** Force a theme for the whole subtree (overrides storage + OS) */ forcedTheme?: string; /** * Respect the OS `prefers-color-scheme` * @default true */ enableSystem?: boolean; /** * Suppress CSS transitions during a theme switch * @default false */ disableTransitionOnChange?: boolean; /** * Set `color-scheme` on `` so native UI matches * @default true */ enableColorScheme?: boolean; /** * `localStorage` key for the persisted choice * @default 'theme' */ storageKey?: string; /** Theme used before a choice is stored */ defaultTheme?: string; /** Map a theme name to a custom class applied on `` */ value?: Record; /** CSP nonce forwarded to the inline script */ nonce?: string; /** Extra props for the inline `