///
import { Logger } from 'typescript-log';
import { PromiseTracker } from '../../universal';
import { CreateAppElement } from './render-app-to-string';
import { WatchtowerEvents } from './render-events';
import * as ServerRenderResults from './server-render-results';
export { PromiseTracker };
export interface RenderOptions {
log: Logger;
errorLocation: string;
pageNotFoundLocation: string;
appRender: CreateAppElement;
events?: WatchtowerEvents;
renderFn: (element: React.ReactElement) => RenderResult;
}
export interface ServerSideRenderOptions extends RenderOptions {
ssrTimeoutMs: number;
/** Used when the request url is re-written to reset the SSR request state */
resetRequest: (location: string) => Promise;
}
export interface PageTag {
/** The html tag to insert into the rendered html */
tag: string;
}
export interface PageTags {
head: PageTag[];
preBody: PageTag[];
body: PageTag[];
}
export declare function renderPageContents(ssrRequestProps: SSRRequestProps, options: ServerSideRenderOptions, location: string, promiseTracker: PromiseTracker): Promise>;