export type Theme = "dark" | "light"; export type Density = "comfortable" | "compact" | "spacious"; export type Motion = "full" | "reduced"; export interface ThemeContextValue { theme: Theme; density: Density; motion: Motion; setTheme: (theme: Theme) => void; setDensity: (density: Density) => void; setMotion: (motion: Motion) => void; toggleTheme: () => void; } /** * ThemeContext lives in its own module so that `ThemeProvider.tsx` (component * source) and `useTheme.ts` (hook source) can both import it without either * file becoming the sole owner of the context. This split is REQUIRED by * `@vitejs/plugin-react` Fast Refresh: when a module exports BOTH a React * component AND a non-component value (e.g., a hook), the dev-server prelude * is injected twice and the runtime crashes with * `inWebWorker has already been declared`. Splitting component, hook, and * shared types/context into three modules keeps each file purely * single-purpose and HMR-safe. */ export declare const ThemeContext: import('react').Context; //# sourceMappingURL=themeContext.d.ts.map