///
import * as React from "react";
import { Middleware, Store, ReducersMapObject } from "redux";
import { HelmetData } from "react-helmet";
export declare enum ServerResultType {
Ok = 0,
Error = 1,
Redirect = 2,
NotFound = 3,
}
export interface IServerResult {
type: ServerResultType;
result?: string;
}
/** Web server agnostic handling of rendering*/
export declare class Server {
/** function to provide an isomorphic react/redux/router app */
static renderIsomorphic(url: string, reducers: ReducersMapObject, htmlComponentFactory: (store: Store, html?: string, head?: HelmetData) => React.ReactElement, routeFactory: (store: Store, serverRender: boolean) => React.ReactElement, middlewares: Middleware[], initialState: TState): Promise;
private static createAppStore(reducers, middlewares, initialState?);
/** function to provide a SPA react/redux/router app */
static renderSPA(reducers: any, htmlComponentFactory: (store: Store) => React.ReactElement, middlewares: Middleware[], initialState?: TState): Promise<{
type: ServerResultType;
result: string;
}>;
private static renderSPADirect(htmlComponent);
private static render(error, redirectLocation, renderProps, store, htmlComponentFactory);
}