UNPKG

1.02 kBTypeScriptView Raw
1import { IEventListener } from './IEventListener';
2import { INotifiable } from '../run/INotifiable';
3/**
4 * An interface for Events, which are part of the Command design pattern.
5 * Events allows to send asynchronious notifications to multiple subscribed listeners.
6 *
7 * @see [[IEventListener]]
8 */
9export interface IEvent extends INotifiable {
10 /**
11 * Gets the event name.
12 *
13 * @returns the name of the event.
14 */
15 getName(): string;
16 /**
17 * Gets all subscribed listeners.
18 *
19 * @returns a list of listeners.
20 */
21 getListeners(): IEventListener[];
22 /**
23 * Adds a listener to receive notifications for this event.
24 *
25 * @param listener the listener reference to add.
26 */
27 addListener(listener: IEventListener): void;
28 /**
29 * Removes a listener, so that it no longer receives notifications for this event.
30 *
31 * @param listener the listener reference to remove.
32 */
33 removeListener(listener: IEventListener): void;
34}