import { IDisposable } from '../Types'; import { IEvent, EventHandler } from './_types'; /** * Class to represent an event. */ export default class Event implements IEvent, IDisposable { #private; /** * Invokes the event * @param sender the object that is calling invoke * @param args the arguments to send along with the event. */ invoke(sender: unknown, args: TEventArgs): void; /** * Adds a handler to the event * @param eventHandler */ addHandler(eventHandler: EventHandler): EventHandler; /** * removes a handler from the event. * @param eventHandler */ removeHandler(eventHandler: EventHandler): void; dispose(): void; }