import { IScope } from "../../page/interfaces/scope.interface"; export declare abstract class Directive { private _selectors; private _inputs; private _outputs; selectorActive: string; all: () => Directive[]; element?: HTMLElement; scope: IScope; inputs: { [key: string]: any; }; outputs: { [key: string]: (e?: any) => void; }; get selectors(): string[]; get selector(): string; get selectorIsInput(): boolean; get selectorIsOutput(): boolean; get value(): any; insertInput(name: string, value: () => any): void; insertOutput(name: string, value: () => string): void; render(action?: () => void): Promise; compile(expression: string): any; get others(): Directive[]; /** This method will always be invoked when the render happens */ abstract onRender(): void; /** This method will always be invoked when values changes */ abstract onChange(): void; /** This method will always be invoked when the element it is linked to is removed from the DOM. */ abstract onDestroy(): void; }