import { default as React } from 'react'; import { Theme } from '../utils'; export interface ClientThemeProviderProps { children: React.ReactNode; theme: Theme; themeDark?: Theme; /** * The theme the server resolved from the `theme` cookie for the first * render. Omit in client-only apps and resolve it before mounting instead. */ $initial?: "light" | "dark"; /** * Keeps a `theme-color` meta tag in sync with the active theme so browser * chrome (e.g. the iOS Safari status bar) matches the page. Pass the name * of the theme color to track, or false to disable. A key (not a function) * so it stays serializable across the server/client component boundary. * Defaults to "light". */ $themeColor?: keyof Theme["colors"] | false; /** * Renders Cherry's GlobalStyles for the active theme. Pass false when the * app provides its own global styles. */ $globalStyles?: boolean; } /** * SSR-aware theme provider. Renders with the server-resolved theme on the * first paint (no dark-mode flash), reconciles it against the `theme` cookie * and OS preference on mount (Safari/Firefox don't send client hints, so * their first server render can guess wrong), and exposes setTheme / * toggleTheme through ThemeContext. Theme changes persist to the `theme` * cookie and localStorage; no API route is needed. */ declare function ClientThemeProvider({ children, theme, themeDark, $initial, $themeColor, $globalStyles, }: ClientThemeProviderProps): React.JSX.Element; export { ClientThemeProvider };