import { RouteObject } from 'redux-first-router';
export declare type TVirtualPageConfig<AppState = any> = string | TVirtualPageConfigPart<AppState>[];
export declare type TVirtualPageConfigPart<AppState = any> = string | TVirtualPagePartSelector<AppState>;
export declare type TVirtualPagePartSelector<AppState = any> = (state: AppState) => string;
export interface IBaseRoute<Page = any, Template = any, AppState = any> extends RouteObject {
    page: Page;
    pageProps?: object;
    template: Template;
    templateProps?: object;
    virtualPage?: TVirtualPageConfig<AppState>;
    allowAnonymousAccess?: boolean;
    groups?: string[];
}
export interface IBaseRoutes<Route extends IBaseRoute = IBaseRoute> {
    [key: string]: Route;
}
