import IRenderer, { RenderedRoute } from './IRenderer';
import { Options as ProxyOptions } from 'http-proxy-middleware';
import { Express } from 'express';
import { Schema } from 'schema-utils/declarations/validate';
import { JSONSchemaType } from 'ajv';
interface ServerOptions {
    port?: number;
    host?: string;
    listenHost?: string;
    /**
     * @deprecated Use Prerenderer
     */
    before?(server: Express): any;
    proxy?: Record<string, ProxyOptions>;
}
export declare const defaultOptions: {
    indexPath: string;
    server: {
        host: string;
        listenHost: string;
        port: number;
    };
    renderer: string;
    rendererOptions: {
        headless: boolean;
    };
};
export type rendererOptions = Record<string, unknown>;
export interface PrerendererOptions {
    staticDir: string;
    indexPath?: string;
    server?: ServerOptions;
    renderer?: string | IRenderer | {
        new (options?: rendererOptions): IRenderer;
    };
    rendererOptions?: rendererOptions;
    postProcess?(route: RenderedRoute, routes: RenderedRoute[]): Promise<void> | void;
}
export type PrerendererFinalOptions = PrerendererOptions & typeof defaultOptions;
export declare const schema: JSONSchemaType<Omit<PrerendererOptions, 'server' | 'renderer' | 'postProcess'>> & Schema;
export {};
