export interface IEventListener<S = any, T = EventArgs> {
    (sender: S, args: T): void;
}
export declare class EventArgs {
    static empty: EventArgs;
}
export declare class Event<S = any, T = EventArgs> {
    private _listeners;
    addEventListener(listener: IEventListener<S, T>, self?: any): void;
    removeEventListener(listener: IEventListener<S, T>, self?: any): void;
    raise(sender: S, args: T): void;
}
