import { Readable } from 'node:stream'; import type { FastifyInstance, FastifyReply } from 'fastify'; import type { RuntimeConfig } from '@fastify/vite'; import type { App } from 'vue'; import type { Router } from 'vue-router'; import type { SSRHeadPayload } from '@unhead/vue/server'; import type { VueHeadClient, UseHeadInput } from '@unhead/vue'; import { type HtmlTemplates } from './templating.ts'; import type RouteContext from './context.ts'; import type { CreateFactory, KeyedRoute } from './types/route.ts'; type TemplatesPair = HtmlTemplates['universal']; interface RoutesList extends Array { toJSON(): unknown; } interface RouteContextWithRuntime extends RouteContext { router: Router; app: App; useHead?: VueHeadClient; hydration?: string; } export declare function createRenderFunction({ routes, create: _create, }: { routes: RoutesList; create: CreateFactory; }): Promise<(this: { request: { route: RouteContextWithRuntime; url: string; }; }) => Promise<{ routes: RoutesList; context: RouteContextWithRuntime; body: Readable; }> | Promise<{ routes: RoutesList; context: RouteContextWithRuntime; body: string | undefined; }>>; export declare function createHtmlFunction(source: string, _scope: FastifyInstance, config: RuntimeConfig): Promise<(this: Omit & { render: () => Promise<{ routes: RoutesList; context: RouteContextWithRuntime; body: string | Readable | undefined; }>; }) => Promise>; export declare function sendClientOnlyShell(templates: TemplatesPair, context: RouteContextWithRuntime): string; export declare function sendShell(templates: TemplatesPair, context: RouteContextWithRuntime, body: string): string; export declare function streamShell(templates: TemplatesPair, context: RouteContextWithRuntime, body: Readable): Readable; export {}; //# sourceMappingURL=rendering.d.ts.map