import { PropType } from "vue"; //#region src/utils/createHttpStatusSink.d.ts /** * Render-scoped HTTP status sink. Created per request on the server, passed to * ``, and read after `renderToString` / * `renderToWebStream` to apply the value to the HTTP response. * * Last write wins: if the rendered tree mounts more than one * ``, the value reflects the last component that ran during * the render pass. * * No-op on the client — `` reads the optional injected sink * and skips the write when no provider is mounted, so the same component tree * can be hydrated without changing behaviour. * * Constraints: * - **Per-request only.** Don't share a sink across requests; the rendered * tree mutates `code` in place. Module-level singletons leak status * between concurrent requests. * - **Don't `Object.freeze` the sink.** The component writes to `.code`; * freezing makes the assignment throw under ESM strict mode. * - **Hydration symmetry:** mount `` on both server and * client (with a throwaway client sink). Vue emits `` / `` * fragment markers around the provider's slot; an extra provider on one * side trips Vue with "Hydration completed but contains mismatches". */ interface HttpStatusSink { code: number | undefined; } export declare function createHttpStatusSink(): HttpStatusSink; //#endregion //#region src/components/ClientOnly.d.ts export declare const ClientOnly: import("vue").DefineComponent<{}, () => import("vue").VNode[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; type ClientOnlyProps = InstanceType["$props"]; //#endregion //#region src/components/ServerOnly.d.ts export declare const ServerOnly: import("vue").DefineComponent<{}, () => import("vue").VNode[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; type ServerOnlyProps = InstanceType["$props"]; //#endregion //#region src/components/Await.d.ts /** * Reads `useDeferred(name)` and hands the resolved value to the `default` * scoped slot via Vue's native `async setup()` Suspense pattern. Wrap in * `` (or Vue's ``). * * ```vue-html * * * * * * * ``` * * Or with the render function: * * ```ts * h(Await, { name: "reviews" }, { * default: ({ value }: { value: Review[] }) => h(ReviewList, { items: value }), * }); * ``` * * Implementation: `async setup()` awaits the deferred promise. Vue's * `` boundary catches the pending promise and shows the fallback * until resolution. Rejection bubbles to the nearest `onErrorCaptured` * handler. */ export declare const Await: import("vue").DefineComponent: ... } })`. */ name: { type: StringConstructor; required: true; }; }>, () => import("vue").VNode[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly: ... } })`. */ name: { type: StringConstructor; required: true; }; }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; type AwaitProps = InstanceType["$props"]; //#endregion //#region src/components/Streamed.d.ts /** * Cross-adapter alias for Vue's native ``. Symmetric naming with * the React/Preact/Solid/Svelte/Angular `` components. * * Slots: * - `default` — content (may contain `` or `async setup()` children). * - `fallback` — shown while any descendant suspends. * * Vue's `` is **blocking** under SSR (no out-of-order placeholder * resolution) — render of HTML after `` waits for every * `async setup()` inside. This matches Vue 3's stable streaming behaviour * (vs React 19 / Solid which support OOO resolution). */ export declare const Streamed: import("vue").DefineComponent<{}, () => import("vue").VNode, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; type StreamedProps = InstanceType["$props"]; //#endregion //#region src/components/HttpStatusCode.d.ts /** * Render-time HTTP status declaration. Mount inside a route component (typical * use case: a glob `*` route's NotFound page) when the status is decided by * the rendered tree rather than a loader. * * Writes `code` to the nearest ``'s sink during `setup()` * and renders nothing. With no provider mounted (the standard client-side * case) the component is a silent no-op — same component tree hydrates * without touching the DOM or warning about mismatches. * * Loader-driven errors (`LoaderNotFound` → 404, `LoaderRedirect` → 30x) keep * working as before; this component covers render-time decisions only. * * Last write wins when several `` instances mount in the * same render pass — sink reflects the last component that ran. * * ```vue-html * * * * * * * * * ``` * * **`renderToWebStream` (streaming SSR):** Vue 3 `` is * chunked-blocking — Vue waits for every `async setup()` inside a boundary * before emitting the chunks past it. So in practice `` * inside a `` boundary still writes to the sink before the * response headers flush. Still, prefer mounting in the shell to avoid * coupling the contract to that particular Vue 3 streaming behaviour. With * `renderToString` there is no ordering concern at all. * * **Hydration symmetry:** `` wraps a render slot, so * Vue emits a fragment marker pair (`` / ``) around its * children server-side. Mount the same `` on the * client (with a throwaway sink) to keep the marker count balanced — see * the `ssr/` example's `entry-client.ts`. Otherwise hydration logs * "Hydration completed but contains mismatches". * * **Valid `code` range:** Node's `res.end()` throws `Invalid status code` * on `NaN`, `0`, negative values, or values `> 999` — this surfaces as a * 5xx / dropped connection, not silent corruption. Pass a real HTTP status * integer (commonly 4xx/5xx; 100-999 is what Node accepts). */ export declare const HttpStatusCode: import("vue").DefineComponent, () => null, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; type HttpStatusCodeProps = InstanceType["$props"]; //#endregion //#region src/components/HttpStatusProvider.d.ts export declare const HttpStatusProvider: import("vue").DefineComponent; required: true; }; }>, () => import("vue").VNode[] | undefined, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly; required: true; }; }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; type HttpStatusProviderProps = InstanceType["$props"]; //#endregion //#region src/composables/useDeferred.d.ts /** * Read a deferred promise published by `defer({ deferred: { : Promise } })` * inside an SSR data loader. Returns the Promise for use inside `async setup()` * (Vue's native Suspense pattern) or paired with ``. * * ```ts * // Vue async setup pattern * export default defineComponent({ * async setup() { * const reviews = await useDeferred("reviews"); * return () => h("div", reviews.map(...)); * }, * }); * ``` * * Returns a forever-pending promise when the key is missing — surfaces * loader/consumer key drift as a visible Suspense fallback rather than a * silent runtime error. */ export declare function useDeferred(key: string): Promise; //#endregion export type { AwaitProps, ClientOnlyProps, HttpStatusCodeProps, HttpStatusProviderProps, HttpStatusSink, ServerOnlyProps, StreamedProps }; //# sourceMappingURL=ssr.d.ts.map