/** * Theme → CSS compilation. * * Shared between the serializer ([app.ts]) and the renderer ([renderer/theme.ts]). * Protocol 0.3 (upstream PrefectHQ/prefab PR #431) folds the theme into the * wire `css` array instead of shipping a structured `theme` object, so the * builder compiles `{ light, dark }` variable maps into a CSS string here. * * Selector convention: light variables target `:root`; dark variables target * BOTH `.dark` (upstream's class convention) and `[data-theme="dark"]` * (this port's attribute convention) so the emitted CSS renders correctly * under either renderer. */ export interface ThemeVars { light?: Record; dark?: Record; } /** Strip characters that could break out of a CSS property name. */ export declare function sanitizeCssIdent(key: string): string; /** Strip characters/patterns that could escape CSS value context. */ export declare function sanitizeCssValue(value: string): string; /** * Compile a `{ light, dark }` theme into a single CSS string. * * - `light` vars target `:root` * - `dark` vars target `.dark, [data-theme="dark"]` plus a * `prefers-color-scheme: dark` block (unless an explicit light scope opts out) * * Returns an empty string when the theme has no variables. */ export declare function compileThemeCss(theme: ThemeVars | undefined): string; //# sourceMappingURL=theme-css.d.ts.map