/**
* @fileoverview Document shell — html + body + provider in one component.
* @module packages/ui/providers/saasflare-shell
* @package ui
*
* Server component that renders the full document shell with the design-system
* state locked in at SSR time. Single source of truth for brand-locked apps:
*
* export default function RootLayout({ children }) {
* return (
*
* {children}
*
* )
* }
*
* Renders:
*
*
* {children}
*
*
*
* Because the data-attributes are baked into the SSR HTML, the pre-hydration
* script is redundant and disabled. Zero FOUT, zero inline JS.
*
* Three-tier ownership model:
* - SaasflareShell → the document (html + body + context + attrs)
* - SaasflareProvider → the context (when you already own html + body)
* - SaasflareScript → the pre-hydration script (strict-CSP use case)
*
* ── When NOT to use SaasflareShell ─────────────────────────────────────────
* For showcases / user palette-switchers (runtime palette changes via a
* ThemeToggle writing to localStorage), use `SaasflareProvider` directly and
* omit `palette` — the inline script reads localStorage before paint.
*/
import type { ReactNode } from "react";
import { type SaasflareProviderProps } from "./saasflare-provider";
/** Props for {@link SaasflareShell}. */
export interface SaasflareShellProps extends Omit {
children: ReactNode;
/** Value for ``. @default "en" */
lang?: string;
/**
* Optional className applied to ``. Use this for `next/font`
* variable classNames, which scope the loaded font's CSS variable:
*
* const inter = Inter({ subsets: ["latin"], variable: "--font-sans" })
*
*/
className?: string;
/** Optional className applied to ``. */
bodyClassName?: string;
/** Optional children rendered inside a `` element. */
head?: ReactNode;
}
/**
* Full document shell that locks the Saasflare design-system state in at
* SSR time. Replaces manual `` + `` + ``
* wiring in the Next.js root layout.
*
* @component
* @package ui
*/
export declare function SaasflareShell({ children, lang, className, bodyClassName, head, palette, surface, radius, animated, theme, smoothScrolling, storageKey, themeStorageKey, }: SaasflareShellProps): import("react/jsx-runtime").JSX.Element;