/// import { srv } from '../../core'; import { Store } from '../../../lib/store'; import { App, IMenuItem } from './app'; import { PluginBuilder, IStateComponentConfig } from './plugin-builder'; import { User } from './user'; import { Options } from '../types'; export type PluginFactory = (app: PluginBuilder) => any; /** * Application instance builder * * Allows to: * - register application plugins * - register application states * - register menu items */ export declare class Builder extends srv.eventEmitter.EventEmitter { private readonly id; private readonly ngApp; private readonly options; private ngmodules; private readonly plugins; private readonly navigator; private readonly user; private readonly menuItems; private readonly title; private conf; constructor(id: string | { id: string; title: string; }, ngApp: angular.IModule, options: Options, ngmodules?: any[]); /** * Registers an application plugin * * @param id plugin id * @param factory plugin factory */ plugin(id: string, factory: (pluginBuilder: PluginBuilder) => any): Builder; /** * Registers a ui-router state * * @param options ui-router state options */ state(options: any): Builder; /** * Registers an angular directive * * @param name component name * @param factory component factory */ component(name: string, factory: angular.IDirectiveFactory): Builder; reactComponent(name: string, factory: angular.IComponentOptions): Builder; /** * Registers a state component * * @param config state component config */ stateComponent(config: IStateComponentConfig, app: App, store: Store): Builder; modules(modules: string[]): void; menuItem(item: IMenuItem): this; config(config: Config): this; getUser(): User; /** * Creates an application instance */ build(): App; }