import { IInnerDirective as IDirective } from "./directive"; import { BasicCompilationEntity, IComponentPropMap, IEwsEntity, IEwsEntityPrivates, IEwsEntityProtectedHooks, IPureObject } from "./base"; export interface IComponent extends IEwsEntity { } export interface IComponentProtectedHooks extends IEwsEntityProtectedHooks { onChildrenRender(): Promise; onRender(): Promise; } export interface IComponentPrivates extends IEwsEntityPrivates<"component"> { readonly __rendered: boolean; readonly __children: IChildElement[]; readonly __components: IInnerComponent[]; readonly __directives: IDirective[]; } export interface IInnerComponent extends IComponent, IComponentPrivates, IComponentProtectedHooks { } export interface IChildElement { component: string; id: string; props: IComponentPropMap; } export interface IAfterCreate { afterCreate(): Promise | void; } export interface IAfterInit { afterInit(): Promise | void; } export interface IAfterRequiresInit { afterRequiresInit(): Promise | void; } export interface IAfterChildrenRender { afterChildrenRender(): Promise | void; } export interface IAfterRender { afterRender(): Promise | void; } export interface IAfterDirectivesAttach { afterDirectivesAttach(): Promise | void; } export declare abstract class BasicComponent extends BasicCompilationEntity { private readonly __children; protected getChildren(): IChildElement[]; constructor(); /** @override */ protected onInit(): Promise; /** @override */ protected onChildrenRender(): Promise; /** @override */ protected onRender(): Promise; }