import type { StaticGenerationStore } from '../client/components/static-generation-async-storage.external'; import type { Revalidate } from './lib/revalidate'; import type { PipeTarget } from './pipe-readable'; type ContentTypeOption = string | undefined; export type RenderResultMetadata = { pageData?: any; revalidate?: Revalidate; staticBailoutInfo?: any; assetQueryString?: string; isNotFound?: boolean; isRedirect?: boolean; fetchMetrics?: StaticGenerationStore['fetchMetrics']; fetchTags?: string; waitUntil?: Promise; }; type RenderResultResponse = ReadableStream | string | null; export default class RenderResult { /** * The detected content type for the response. This is used to set the * `Content-Type` header. */ readonly contentType: ContentTypeOption; /** * The metadata for the response. This is used to set the revalidation times * and other metadata. */ readonly metadata: RenderResultMetadata; /** * The response itself. This can be a string, a stream, or null. If it's a * string, then it's a static response. If it's a stream, then it's a * dynamic response. If it's null, then the response was not found or was * already sent. */ private readonly response; /** * Creates a new RenderResult instance from a static response. * * @param value the static response value * @returns a new RenderResult instance */ static fromStatic(value: string): RenderResult; private waitUntil?; constructor(response: RenderResultResponse, { contentType, waitUntil, ...metadata }?: { contentType?: ContentTypeOption; } & RenderResultMetadata); extendMetadata(metadata: RenderResultMetadata): void; /** * Returns true if the response is null. It can be null if the response was * not found or was already sent. */ get isNull(): boolean; /** * Returns false if the response is a string. It can be a string if the page * was prerendered. If it's not, then it was generated dynamically. */ get isDynamic(): boolean; /** * Returns true if the response is a stream. If the page was dynamic, this * will throw an error. * * @returns The response as a string */ toUnchunkedString(): string; pipe(res: PipeTarget): Promise; } export {};