import { NuxtRendererOptions } from "./runtime.js";
import { App } from "vue";
import { RendererContext } from "vue-bundle-renderer/runtime";
import { NuxtSSRContext } from "#app/types";
//#region src/runtime/server/renderer/build-files.d.ts
export type Entry = (ssrContext: NuxtSSRContext) => Promise<App>;
export declare const APP_ROOT_OPEN_TAG: string;
export declare const APP_ROOT_CLOSE_TAG: string;
interface Renderer {
  rendererContext: RendererContext;
  renderToString(ssrContext: NuxtSSRContext): Promise<{
    html: string;
    renderResourceHeaders: () => Record<string, string>;
    renderResourceHints: () => string;
    renderStyles: () => string;
    renderScripts: () => string;
  }>;
}
/** The build artifacts a set of renderer options renders with, loaded once per renderer. */
export interface BuildFiles {
  /** The renderer for a request: the SSR renderer, or the SPA shell for a request opted out of it. */
  getRenderer(ssrContext: NuxtSSRContext): Promise<Renderer>;
  /** The SSR renderer, for a consumer that renders a document fragment (an island) rather than a route. */
  getSSRRenderer(): Promise<Renderer>;
  /** The SSR app factory, which streaming needs directly. */
  getServerApp(): Promise<Entry>;
}
/** Load the build artifacts for a set of renderer options, caching each of them on the returned object. */
export declare function createBuildFiles(options: NuxtRendererOptions): BuildFiles;
export declare const getSSRStyles: () => Promise<Record<string, () => Promise<string[]>>>;
export declare const getInlinedCSS: () => Promise<Record<string, string[][]>>;
//#endregion
export {};