/*! * Copyright (c) Microsoft. All rights reserved. */ export declare type EventListener = (data: T) => void; /** * @export * @interface EventHook * @template T */ export interface EventHook { /** * Subscribe a listener to this event. * * @param {EventListener} listener */ subscribe(listener: EventListener): void; /** * Unsubscribe a listener from this event. * * @param {EventListener} listener */ unsubscribe(listener: EventListener): void; /** * Remove all listeners from this event. */ unsubscribeAll(): void; } export declare class EventHook implements EventHook { private sender; protected listeners: Array>; constructor(sender: any); dispatch(data: T): void; }