import { Callback } from './Types';
import { IControlSimulateKey, PageEventType } from './Page/Events';
export declare class AttrEvent<T> {
    private data;
    events: {
        [key: string]: Callback[];
    };
    constructor(data: T);
    get: <K extends keyof T>(key: K) => T[K];
    set: (value: T) => void;
    setKey: <K extends keyof T>(key: K, value: T[K]) => void;
    getAll: () => T;
    on: (eventName: PageEventType, callBack: Callback) => void;
    removeOn: (eventName: PageEventType) => void;
    reOn: (name: PageEventType, callBack: Callback) => void;
    trigger: (eventName: PageEventType, ...args: any) => void;
    onCodeSimulateKeyDown: (key: IControlSimulateKey, propertyName: any, callBack: Callback) => void;
    codeSimulateKeyDown: (key: IControlSimulateKey, propertyName: any, ...args: any) => void;
    removeOnCodeSimulateKeyDown: (key: IControlSimulateKey, propertyName: any) => void;
    private controlWillUnmounts;
    onControlWillUnmount: (propertyName: any, callBack: Callback) => void;
    removeOnControlWillUnmount: (propertyName: any) => void;
    controlWillUnmount: (propertyName: any, ...args: any) => void;
    allControlsWillUnmount: () => void;
    onControl: (eventName: PageEventType, propertyName: any, callBack: Callback) => void;
    triggerControl: (eventName: PageEventType, propertyName: any, ...args: any) => void;
    removeOnControl: (eventName: PageEventType, propertyName: any) => void;
    triggerChangeFilterOfPage: () => void;
    onFactoryClassWillUnmount: (callBack: Callback) => void;
    factoryClassWillUnmount: () => void;
}
