import type { RenderProps } from "@nifrajs/web"; import { type ReactNode } from "react"; /** * Fold a layout chain (outermost layout → page) into a single React tree: the page * (innermost) receives `props` (the loader data); each layout wraps the child via its * `children`. Shared by the server adapter (renderToString) and the client (hydrateRoot). * * The whole tree is wrapped in a {@link RouterContext} provider carrying the matched `params`, the * current `path`, the validated `search`, and the client `pending` flag (all threaded through * `RenderProps` identically on SSR and client), so the routing hooks * (`useParams`/`useLocation`/`useSearch`/`useNavigation`) read the same value on both sides - no * hydration mismatch (`pending` is `false` on SSR and on the initial client render). * A render with no routing fields (a non-router adapter usage) provides the empty default. */ export declare function compose(chain: readonly unknown[], props: RenderProps): ReactNode; //# sourceMappingURL=compose.d.ts.map