import type { Theme } from '../types/node.type.js';
export declare function getActiveServerTheme(): Theme | undefined;
export declare function setActiveServerTheme(theme: Theme): void;
export declare function registerServerThemeVariables(theme: Theme): void;
export declare function consumeServerThemeVariablesCss(): {
    id: string;
    cssText: string;
} | undefined;
/**
 * Builds the `:root{--meonode-theme-*: …}` CSS text directly from a Theme without
 * touching the server-only variable store. Safe to call on the client for pure
 * SPA flows (Vite/CRA) where there is no SSR emission to pick up.
 */
export declare function buildThemeVariablesCss(theme: Theme): string;
/**
 * Replaces `theme.*` token strings with `var(--meonode-theme-*)` references,
 * walking arbitrary structures iteratively with copy-on-write semantics.
 *
 * Mirrors `ThemeUtil.resolveObjWithTheme`'s traversal contract:
 * - Only descends into plain objects and arrays. Class instances (refs,
 *   Date, RegExp, MUI internals, React elements, etc.) are passed through
 *   untouched so their identity and prototype chain are preserved.
 * - Copy-on-write: untouched subtrees keep their original reference, which
 *   matters when forwarding props to memoized components.
 * - Iterative with a manual work stack — safe for deeply nested trees.
 * - Detects cycles via a path Set.
 * - Only transforms string **values**, never object keys. Keys that hold
 *   theme tokens (e.g. `'@media (max-width: theme.breakpoint.md)'`) must
 *   resolve to concrete values, since CSS variables are invalid inside
 *   media features and selector text. Key resolution is left to
 *   `ThemeUtil.resolveObjWithTheme`, which has access to the live theme.
 * - Memoized via a module-level WeakMap so the same input reference (e.g.
 *   a `sx` object defined outside a render body) is converted at most once.
 */
export declare function replaceThemeTokensWithCssVars<T>(value: T): T;
//# sourceMappingURL=server-theme.util.d.ts.map