import { ViewConfig } from './ViewConfig';
import { AddChild, HasChildren, HasId, RepresentsRoutes } from './common';
import { CommonRouteObject } from '../type';
interface RootRoutePartial extends CommonRouteObject {
    root: string;
    view: string;
    panel: string;
    modal?: string;
}
export declare class RootConfig<T extends string> implements HasId<T>, HasChildren<ViewConfig<string>>, RepresentsRoutes<RootRoutePartial> {
    id: T;
    private views;
    constructor(id: T, views: ViewConfig<string>[]);
    get children(): ViewConfig<string>[];
    getRoutes(): RootRoutePartial[];
}
export declare function createRoot<T extends string, A extends ViewConfig<any>, B extends ViewConfig<any>, C extends ViewConfig<any>, D extends ViewConfig<any>, E extends ViewConfig<any>, F extends ViewConfig<any>, G extends ViewConfig<any>>(id: T, panels: [A, B, C, D, E, F, G]): AddChild<AddChild<AddChild<AddChild<AddChild<AddChild<AddChild<RootConfig<T>, A>, B>, C>, D>, E>, F>, G>;
export declare function createRoot<T extends string, A extends ViewConfig<any>, B extends ViewConfig<any>, C extends ViewConfig<any>, D extends ViewConfig<any>, E extends ViewConfig<any>, F extends ViewConfig<any>>(id: T, panels: [A, B, C, D, E, F]): AddChild<AddChild<AddChild<AddChild<AddChild<AddChild<RootConfig<T>, A>, B>, C>, D>, E>, F>;
export declare function createRoot<T extends string, A extends ViewConfig<any>, B extends ViewConfig<any>, C extends ViewConfig<any>, D extends ViewConfig<any>, E extends ViewConfig<any>>(id: T, panels: [A, B, C, D, E]): AddChild<AddChild<AddChild<AddChild<AddChild<RootConfig<T>, A>, B>, C>, D>, E>;
export declare function createRoot<T extends string, A extends ViewConfig<any>, B extends ViewConfig<any>, C extends ViewConfig<any>, D extends ViewConfig<any>>(id: T, panels: [A, B, C, D]): AddChild<AddChild<AddChild<AddChild<RootConfig<T>, A>, B>, C>, D>;
export declare function createRoot<T extends string, A extends ViewConfig<any>, B extends ViewConfig<any>, C extends ViewConfig<any>>(id: T, panels: [A, B, C]): AddChild<AddChild<AddChild<RootConfig<T>, A>, B>, C>;
export declare function createRoot<T extends string, A extends ViewConfig<any>, B extends ViewConfig<any>>(id: T, views: [A, B]): AddChild<AddChild<RootConfig<T>, A>, B>;
export declare function createRoot<T extends string, A extends ViewConfig<any>>(id: T, views: [A]): AddChild<RootConfig<T>, A>;
export declare function createRoot<T extends string>(id: T, views: ViewConfig<any>[]): RootConfig<T>;
export {};
//# sourceMappingURL=RootConfig.d.ts.map