/** * A simple event relay. * Create a listener with `createListener` and dispatch events with `dispatchEvent`. * For each supported event type, create a new instance of `EventRelay` and expose it as a property. * * For example, this code: * ```ts * class MyClass { * public readonly onSomethingHappened = new EventRelay(); * * public doSomething(whatToDo: string) { * this.onSomethingHappened.dispatchEvent(whatToDo); * console.log("Done notifying listeners"); * } * } * * const myClass = new MyClass(); * myClass.onSomethingHappened.createListener((whatHappened) => { * console.log(`Something happened: ${whatHappened}`); * }); * myClass.doSomething("eat a cookie"); * ``` * * Will print this: * ``` * Something happened: eat a cookie * Done notifying listeners * ``` */ export declare class EventRelay { constructor(); createListener(callback: ((data: T) => void)): EventRelayListenerHandle; createOnceListener(callback: ((data: T) => void)): EventRelayListenerHandle; dispatchEvent(data: T): void; clearListeners(): void; get listenerCount(): number; get disposed(): boolean; dispose(): void; [Symbol.dispose](): void; } export declare class EventRelayListenerHandle { private constructor(); dispose(): void; [Symbol.dispose](): void; get disposed(): boolean; } //# sourceMappingURL=EventRelay.d.ts.map