import { FunctionComponent } from 'react';
import { useHistory, useParams, Link, StaticRouter } from 'react-router-dom';
declare type RouteConfig = {
    path: string;
    component: FunctionComponent;
};
declare type RouterConfig = RouteConfig[];
declare type TemplateConfig = {
    title?: string;
    keywords?: string;
    description?: string;
    icon?: string;
    viewport?: string;
};
declare type AyaApp = {
    routes: RouterConfig;
    templateConfig: TemplateConfig;
};
declare type GetInitialStateContext = {
    common: {
        path: string;
        query: {
            [key: string]: string;
        };
        params: {
            [key: string]: string;
        };
    };
};
declare function useInitialState<T>(): {
    data: T;
    setData: (data: T) => void;
    run: () => void;
    loading: boolean;
    error: boolean;
};
declare function makeSwitchPages<T>(routess: RouterConfig, ssrData: T): JSX.Element;
declare function matchRoute(routes: RouterConfig, pathname: string): {
    route: RouteConfig;
    params: {
        [key: string]: any;
    };
};
declare function searchToQuery(search: string): {
    [key: string]: string;
};
declare function clientInit(routes: RouterConfig): void;
declare function renderHtml(reactHtmlStr: string, jsFilePath: string, initialData: any, mode: 'csr' | 'ssr', templateConfig?: TemplateConfig): string;
declare function ssr(pathname: string, app: AyaApp, jsFilePath: string, mode: 'csr' | 'ssr', ctx: GetInitialStateContext, ReactDOMServer: any): Promise<string>;
export { RouterConfig, useInitialState, makeSwitchPages, matchRoute, searchToQuery, clientInit, useHistory, useParams, Link, GetInitialStateContext, StaticRouter, renderHtml, AyaApp, ssr, };
