import { ModuleWithProviders, NgModule, Provider, Type } from '@angular/core'; import { Route } from '@angular/router'; import { Framer } from './framer'; import { FramingRootComponentConfig } from './framing-root-component-config'; import { FramingRouteConfig } from './framing-route-config'; /** * */ export declare class FramingNgModule { private static _nextId; private _ngModule; private _root; private _rootComponent; private _rootComponentConfig; private _routes; private _routeConfig; static readonly defaultPathMatch: string; ngModule(ngModule?: NgModule): FramingNgModule; bootstrap(bootstrap: any[]): FramingNgModule; /** * Add a child route. Adds to '' route by default */ child(child: Route): FramingNgModule; child(child: Route, parent: Route): FramingNgModule; child(child: Route, parent: Route[]): FramingNgModule; /** * Adds to imports * Adds to route */ children(children: Route[]): FramingNgModule; children(children: Route[], parent: Route): FramingNgModule; children(children: Route[], parent: Route[]): FramingNgModule; /** * Adds as component on route */ component(component: Type): FramingNgModule; component(component: Type, route: Route): FramingNgModule; component(component: Type, route: Route[]): FramingNgModule; /** * Adds as component on route * Adds component to declarations */ componentAndDeclare(component: Type): FramingNgModule; componentAndDeclare(component: Type, route: Route): FramingNgModule; componentAndDeclare(component: Type, route: Route[]): FramingNgModule; /** * Adds as component on route * Adds component to declarations */ componentAndDeclaration(component: Type): FramingNgModule; componentAndDeclaration(component: Type, route: Route): FramingNgModule; componentAndDeclaration(component: Type, route: Route[]): FramingNgModule; /** * Adds containers to route data * Adds container components to exports and declarations */ container(container: string, components: Type | Type[]): FramingNgModule; container(container: string, components: Type | Type[], route: Route): FramingNgModule; container(container: string, components: Type | Type[], route: Route[]): FramingNgModule; /** * Adds containers to route data * Adds container components to exports and declarations */ containers(containers: { [key: string]: Type | Type[]; }): FramingNgModule; containers(containers: { [key: string]: Type | Type[]; }, route: Route): FramingNgModule; containers(containers: { [key: string]: Type | Type[]; }, route: Route[]): FramingNgModule; /** * Method for appending data to route */ datum(key: string, datum: any): FramingNgModule; datum(key: string, datum: any, route: Route): FramingNgModule; datum(key: string, datum: any, route: Route[]): FramingNgModule; /** * Methods for appending data to route */ data(data: { [key: string]: any; }): FramingNgModule; data(data: { [key: string]: any; }, route: Route): FramingNgModule; data(data: { [key: string]: any; }, route: Route[]): FramingNgModule; /** * Method for appending data resolve to route */ resolve(key: string, resolve: string | Type): FramingNgModule; resolve(key: string, resolve: string | Type, route: Route): FramingNgModule; resolve(key: string, resolve: string | Type, route: Route[]): FramingNgModule; /** * Method for appending data resolve to route */ resolves(resolves: { [key: string]: string | Type; }): FramingNgModule; resolves(resolves: { [key: string]: string | Type; }, route: Route): FramingNgModule; resolves(resolves: { [key: string]: string | Type; }, route: Route[]): FramingNgModule; declare(declaration: Type | Type[]): FramingNgModule; declaration(declaration: Type | Type[]): FramingNgModule; declarations(declarations: Type[]): FramingNgModule; declareAndExport(declaration: Type | Type[]): FramingNgModule; declarationAndExport(declaration: Type | Type[]): FramingNgModule; declarationsAndExports(declarations: Type[]): FramingNgModule; declareAndEntryComponent(declaration: Type | Type[]): FramingNgModule; declarationAndEntryComponent(declaration: Type | Type[]): FramingNgModule; declarationsAndEntryComponents(declarations: Type[]): FramingNgModule; entryComponent(entryComponent: Type | Type[]): FramingNgModule; entryComponents(entryComponents: Type[]): FramingNgModule; export(e: Type | Type[]): FramingNgModule; exports(exports: Type[]): FramingNgModule; import(i: Type | Type[] | ModuleWithProviders | ModuleWithProviders): FramingNgModule; imports(imports: (Type | ModuleWithProviders)[]): FramingNgModule; importAndExport(m: Type | Type[]): FramingNgModule; importsAndExports(modules: Type[]): FramingNgModule; provide(provider: Provider | Provider[] | Type | Type[]): FramingNgModule; provider(provider: Provider | Provider[] | Type | Type[]): FramingNgModule; providers(providers: Provider[] | Type[]): FramingNgModule; /** * Adds component to bootstrap * Defaults route to path '', pathMatch: 'full' */ root(rootComponent?: Type, config?: FramingRootComponentConfig): FramingNgModule; /** * Creates Routes array with single route * Adds RouterModule.forRoot(routes) or RouterModule.forChild(routes) to imports * Adds all resolve services as providers */ route(route?: Route, config?: FramingRouteConfig): FramingNgModule; routes(routes: Route[], config?: FramingRouteConfig): FramingNgModule; frameRoute(route: Route, ...framers: Framer[]): FramingNgModule; frameRoute(route: Route[], ...framers: Framer[]): FramingNgModule; /** * Returns the route if it exists. */ getRoute(route?: Route, array?: Route[]): Route; /** * Returns the route. Creates it if it does not exist. */ getOrAddRoute(route?: Route, array?: Route[]): Route; /** * Run framers. */ frame(...framers: Framer[]): FramingNgModule; use(...framers: Framer[]): FramingNgModule; /** * Builds @NgModule() config in the following order: * - Route framers * - Root * - Route */ build(): NgModule; private inspectModule(); private inspectRoute(route); private buildRoot(); private buildFramers(framers, route?); private buildFramer(framer, route); /** * Builds framers that were manually added to route data. */ private buildRouteFramers(routes); private buildContainers(routes); private buildRoute(); private getOrAddRouteOverload(route); }