///
import { IComponentBundle } from "./component";
import { IDirectiveBundle } from "./directive";
import { IProviderBundle } from "./provider";
import { IModuleBundle, IModuleLazys } from "./module";
import { IPipeBundle } from "./pipe";
import { Injectable } from "angular";
import { IElementRef } from "./template";
export declare enum GeneratorType {
Component = "component",
Directive = "directive",
Provider = "provider",
Pipe = "pipe",
Module = "ng_module",
None = "undefined",
}
export interface IGenerator {
Selector: string;
Type: string;
Build(): T;
}
export interface IComponentGenerator extends IGenerator {
StylesLoad?: Function;
StylesUnload?: Function;
ViewChildren?: Array<[string, IElementRef]>;
}
export interface IDirectiveGenerator extends IGenerator {
StylesLoad?: Function;
StylesUnload?: Function;
}
export interface IProviderGenerator extends IGenerator {
}
export interface IPipeGenerator extends IGenerator {
}
export interface IModuleGenerator extends IGenerator {
LazyLoads?: IModuleLazys[];
LazyConfig?(func: Injectable): any;
RunLazyLoads?(handler: (lazy: IModuleLazys) => void): any;
Config?(func: Injectable): any;
Run?(func: Injectable): any;
}