import { IDetachable } from "./IDetachable"; import { IStringDictionary } from "./IDictionary"; import { IDisposable } from "./IDisposable"; import { PlatformEvent } from "./PlatformEvent"; export interface IEventListener { onEvent(e: TEvent): void; } export interface IEventSource extends IDisposable { metadata: IStringDictionary; onEvent(e: TEvent): void; attach(onEventCallback: (event: TEvent) => void): IDetachable; attachListener(listener: IEventListener): IDetachable; }