export interface ISimpleChange {
    previousValue: any;
    currentValue: any;
    firstChange: boolean;
}
export declare class NgSimpleChange {
    previousValue: any;
    currentValue: any;
    firstChange: boolean;
    constructor(previousValue: any, currentValue: any, firstChange: boolean);
    isFirstChange(): boolean;
}
export declare type NgSimpleChanges = Record<string, NgSimpleChange>;
export declare class NgDirectiveBase<IInput extends {
    [prop: string]: any;
} = {
    [prop: string]: any;
}, IOutput = {
    [prop: string]: (e: any) => void;
}> {
    private __eventListenerMap;
    mounted(): void;
    el: {
        nativeElement: any;
    };
    setInput(props: IInput & IOutput & {
        [props: string]: any;
    }): void;
    updateInput(props: IInput & IOutput, old: IInput & IOutput): void;
    hostBinding(key: string, valueKey: string): void;
    hostListener(key: string, functionKey: string): void;
    eventListener(key: string, userFunction: (e: any) => void): void;
    ngOnChanges?(changes: NgSimpleChanges): void;
    hostBindingMap?: {
        [key: string]: string;
    };
    hostListenerMap?: {
        [key: string]: string;
    };
    inputNameMap?: {
        [key: string]: string;
    };
    outputNameMap?: {
        [key: string]: string;
    };
    getInputKey(key: string): string;
    getOutputKey(key: string): string;
    notifyOnChanges(changes: Map<string, ISimpleChange>): void;
}
