import { ThemeAppearance } from './appearance.js'; export interface BlockingScriptOptions { /** Valid theme IDs to accept. Defaults to VALID_THEMES from core. */ validThemes?: readonly string[]; /** Fallback theme when no preference is stored. Defaults to DEFAULT_THEME from core. */ defaultTheme?: string; /** localStorage key for the active theme. Defaults to STORAGE_KEY from core. */ storageKey?: string; /** Legacy localStorage keys to migrate from. Defaults to LEGACY_STORAGE_KEYS from core. */ legacyKeys?: readonly string[]; /** Light/dark mapping per theme ID. Defaults to THEME_APPEARANCES from core. */ themeAppearances?: Readonly>; } /** * Generates a self-contained inline IIFE that prevents FOUC. It: * 1. Migrates legacy storage keys to the current `storageKey` * 2. Reads and validates the stored theme against the allowlist * 3. Sets `data-theme`, `data-appearance`, and the `theme-{id}` class on `` * 4. Sets `window.__INITIAL_THEME__` so `initTheme` can short-circuit * 5. Updates the existing CSS `` href when the theme is non-default * * The body uses readable identifiers; the bundler/gzip handles size. The * outer try/catch keeps the page from breaking when localStorage throws * (e.g. private browsing). */ export declare function generateBlockingScript(options?: BlockingScriptOptions): string; //# sourceMappingURL=blocking-script.d.ts.map