import type { SetStateAction } from "r18gs"; import type { ThemeState } from "../../constants"; export interface ThemeSwitcherProps { /** id of target element to apply classes to. This is useful when you want to apply theme only to specific container. */ targetId?: string; /** To stop persisting and syncing theme between tabs. */ dontSync?: boolean; /** force apply CSS transition property to all the elements during theme switching. E.g., `all .3s` */ themeTransition?: string; /** provide styles object if you are using CSS/SCSS modules. */ styles?: Record; } export interface LoadSyncedStateProps extends ThemeSwitcherProps { setThemeState: SetStateAction; } export interface ApplyClassesProps { targets: (HTMLElement | null)[]; theme: string; resolvedColorScheme: "light" | "dark"; styles?: Record; } export interface UpdateDOMProps { targetId?: string; themeState: ThemeState; dontSync?: boolean; styles?: Record; } /** * The core ThemeSwitcher component wich applies classes and transitions. * Cookies are set only if corresponding ServerTarget is detected. */ export declare function ThemeSwitcher({ targetId, dontSync, themeTransition, styles }: ThemeSwitcherProps): null; //# sourceMappingURL=theme-switcher.d.ts.map