///
import type { Options as RenderToReadableStreamOptions, ResumeOptions } from 'react-dom/server.edge';
import type { Options as PrerenderOptions } from 'react-dom/static.edge';
type RenderResult = {
stream: ReadableStream;
postponed?: object | null;
resumed?: boolean;
};
export interface Renderer {
render(children: JSX.Element): Promise;
}
export declare class ServerRenderer implements Renderer {
private readonly options;
private readonly renderToReadableStream;
constructor(options: RenderToReadableStreamOptions);
render(children: JSX.Element): Promise;
}
export declare class VoidRenderer implements Renderer {
render(_children: JSX.Element): Promise;
}
/**
* This represents all the possible configuration options for each of the
* available renderers. We pick the specific options we need for each renderer
* to help the `createStaticRenderer` function. If more options are added to
* this type they should be added to the `createStaticRenderer` function as
* well.
*/
type StreamOptions = Pick;
export declare const DYNAMIC_DATA: 1;
export declare const DYNAMIC_HTML: 2;
type DynamicDataPostponedState = typeof DYNAMIC_DATA;
type DynamicHTMLPostponedState = [typeof DYNAMIC_HTML, object];
export type PostponedState = DynamicDataPostponedState | DynamicHTMLPostponedState;
export declare function getDynamicHTMLPostponedState(data: object): DynamicHTMLPostponedState;
export declare function getDynamicDataPostponedState(): DynamicDataPostponedState;
type Options = {
/**
* Whether or not PPR is enabled. This is used to determine which renderer to
* use.
*/
ppr: boolean;
/**
* Whether or not this is a static generation render. This is used to
* determine which renderer to use.
*/
isStaticGeneration: boolean;
/**
* The postponed state for the render. This is only used when resuming a
* prerender that has postponed.
*/
postponed: null | PostponedState;
/**
* The options for any of the renderers. This is a union of all the possible
* options for each renderer. If additional configuration options are required
* for a renderer, they should be added to the `StreamOptions` type and then
* added via the `createStaticRenderer` function.
*/
streamOptions: StreamOptions;
};
export declare function createStaticRenderer({ ppr, isStaticGeneration, postponed, streamOptions: { signal, onError, onPostpone, onHeaders, maxHeadersLength, nonce, bootstrapScripts, formState, }, }: Options): Renderer;
export {};