import { type EmotionCache } from '@emotion/cache';
import { type PropsWithChildren } from 'react';
export type StyleCache = EmotionCache & {
    /**
     * Flush the inserted styles.
     * @returns A list of class names and the corresponding CSS rules that were flushed.
     */
    flush: () => {
        classNames: string[];
        css: string;
    };
};
export declare const createRootStyleCache: ({ key }?: {
    key?: string;
}) => StyleCache;
type StyleTagProps = {
    cacheKey: string;
    classNames: string[];
    css: string;
};
export declare const StyleTagSSR: ({ cacheKey, classNames, css }: StyleTagProps) => import("react/jsx-runtime").JSX.Element;
export declare const styleTagHtml: ({ cacheKey, classNames, css }: StyleTagProps) => string;
export type RootStyleProps = {
    /**
     * The key used to prefix generated class names.
     * If not provided, a default key will be used.
     */
    cacheKey?: string;
    /**
     * Toggle the built-in CSS reset.
     * Set to `false` when using `@layer`-based CSS frameworks like Tailwind.
     */
    enableCssReset?: boolean;
};
export declare function RootStyleRegistry({ children, cache, enableCssReset, }: PropsWithChildren<{
    cache: StyleCache;
    enableCssReset?: boolean;
}>): import("react/jsx-runtime").JSX.Element;
export declare function useCache(): EmotionCache;
export declare function useCSSResetEnabled(): boolean;
export {};
//# sourceMappingURL=root-style-registry.d.ts.map