/** * Head resolution + merging, in its own module so the CLIENT can have it without the server. * * These two are pure functions over `Meta`, but they used to live in `index.ts` - the module that also * carries `renderPage`, `createWebApp` and the static-file server. The generated client entry imported * them from `@nifrajs/web`, which under a bundler was harmless (server code tree-shakes away) and under * Vite's dev server was fatal: it serves each module as-is, so pulling `index.ts` into the browser graph * executed `public-dir.ts` and the page died on `Module "node:fs/promises" has been externalized` * before hydrating. Splitting them out means the client entry never names the server module at all, * rather than relying on a bundler to remove it afterwards. * * `index.ts` and `client.ts` both re-export from here, so the public API is unchanged in both places. */ import type { Meta, MetaArgs, MetaInput } from "../manifest.js"; /** @internal Whether `resolveMeta` observed this object as a static export. */ export declare function isStaticMeta(meta: Meta): boolean; /** Resolve a route's `meta` export - a static object, or a function of the route's data/params. */ export declare function resolveMeta(meta: MetaInput | undefined, args: MetaArgs): Meta; /** * Merge a layout chain's heads, outermost first: `title`/`lang`/`dir` are nearest-wins, and * `meta`/`link`/`script` concatenate in chain order. * * Returns a fresh object whose identity is stable per `heads` *content* only when every entry is a * static (by-reference) `Meta` and there is exactly one - otherwise a new object each call. That is * fine: `headTags`'s memo is keyed on identity, so a per-request merge simply recomputes (its * content can vary with loader data anyway). */ export declare function mergeHeads(heads: readonly Meta[]): Meta; //# sourceMappingURL=head-merge.d.ts.map