UNPKG

2.41 kBTypeScriptView Raw
1import { EventHandler, IEventReceiver, IEventEmitter } from './definitions';
2/**
3 * A registered event receiver.
4 */
5export declare class EventReceiver implements IEventReceiver {
6 /**
7 * An registered identifier for this event receiver.
8 */
9 key: string | number;
10 /**
11 * The registered name of the event.
12 */
13 event: string;
14 /**
15 * The actual callback.
16 */
17 handler: EventHandler;
18 constructor(
19 /**
20 * An registered identifier for this event receiver.
21 */
22 key: string | number,
23 /**
24 * The registered name of the event.
25 */
26 event: string,
27 /**
28 * The actual callback.
29 */
30 handler: EventHandler);
31}
32/**
33 * Stores callbacks for registered events.
34 */
35export declare class EventEmitter implements IEventEmitter {
36 /**
37 * @private
38 */
39 private n;
40 /**
41 * @private
42 */
43 private eventReceivers;
44 /**
45 * @private
46 */
47 private eventsEmitted;
48 /**
49 * Register an event callback which gets triggered every time the event is
50 * fired.
51 *
52 * @param event
53 * The event name.
54 * @param callback
55 * A callback to attach to this event.
56 */
57 on(event: string, callback: EventHandler): IEventReceiver;
58 /**
59 * Unregister an event receiver returned from
60 * [`on()`](/api/client/eventemitter#on).
61 *
62 * @param receiver
63 * The event receiver.
64 */
65 off(receiver: IEventReceiver): void;
66 /**
67 * Register an event callback that gets triggered only once. If the event was
68 * triggered before your callback is registered, it calls your callback
69 * immediately.
70 *
71 * @note TODO: Fix the docs for () => void syntax.
72 *
73 * @param event
74 * The event name.
75 * @param callback
76 * A callback to attach to this event. It takes no arguments.
77 */
78 once(event: string, callback: () => void): void;
79 /**
80 * Trigger an event. Call all callbacks in the order they were registered.
81 *
82 * @param event
83 * The event name.
84 * @param data
85 * An object to pass to every callback.
86 */
87 emit(event: string, data?: Object): void;
88 /**
89 * Return a count of the number of times an event has been triggered.
90 *
91 * @param event
92 * The event name.
93 */
94 emitted(event: string): number;
95}