import { DirectiveList , IDirective } from './directive' ; import { Vnode , ParseOptions } from '../vnode' ; import { Compile } from '../compile' ; import { ChangeDetectionStrategy } from '../component' ; import { IPipe } from './pipe' ; export type TComAndDir = { components : { nativeElement : any ; inputs : any ; name : string ; content ? : Vnode [ ] ; isFromContent : boolean ; } [ ] ; directives : { nativeElement : any ; inputs : any ; name : string ; isFromContent : boolean ; } [ ] ; } ; export type ComponentList = { instanceScope : IComponent ; content : Vnode [ ] ; isDirty : boolean ; } & DirectiveList ; export interface IComponent extends IDirective { [ key ] : any ; $watchStatus ? : 'pending' | 'available' | 'disable' ; $isWaitingRender ? : boolean ; $compileInstance ? : Compile ; $template ? : string ; $templateUrl ? : string ; $nvChangeDetection ? : ChangeDetectionStrategy ; $componentList ? : ComponentList [ ] ; $parseVnodeOptions ? : ParseOptions ; $templateVnode ? : Vnode [ ] ; $saveVnode ? : Vnode [ ] ; $nvContent ? : Vnode [ ] ; $pipeMap ? : Map < Function , IPipe > ; watchData ? ( ) : void ; render ? ( ) : Promise < IComponent > ; nvDoCheck ? ( ) : void ; compiler ? ( nativeElement , componentInstace ) : Promise < IComponent > ; }