UNPKG

5.31 kBTypeScriptView Raw
1export type event = (symbol|string);
2export type eventNS = string|event[];
3
4export interface ConstructorOptions {
5 /**
6 * @default false
7 * @description set this to `true` to use wildcards.
8 */
9 wildcard?: boolean,
10 /**
11 * @default '.'
12 * @description the delimiter used to segment namespaces.
13 */
14 delimiter?: string,
15 /**
16 * @default false
17 * @description set this to `true` if you want to emit the newListener events.
18 */
19 newListener?: boolean,
20 /**
21 * @default false
22 * @description set this to `true` if you want to emit the removeListener events.
23 */
24 removeListener?: boolean,
25 /**
26 * @default 10
27 * @description the maximum amount of listeners that can be assigned to an event.
28 */
29 maxListeners?: number
30 /**
31 * @default false
32 * @description show event name in memory leak message when more than maximum amount of listeners is assigned, default false
33 */
34 verboseMemoryLeak?: boolean
35 /**
36 * @default false
37 * @description disable throwing uncaughtException if an error event is emitted and it has no listeners
38 */
39 ignoreErrors?: boolean
40}
41export interface ListenerFn {
42 (...values: any[]): void;
43}
44export interface EventAndListener {
45 (event: string | string[], ...values: any[]): void;
46}
47
48export interface WaitForFilter { (...values: any[]): boolean }
49
50export interface WaitForOptions {
51 /**
52 * @default 0
53 */
54 timeout: number,
55 /**
56 * @default null
57 */
58 filter: WaitForFilter,
59 /**
60 * @default false
61 */
62 handleError: boolean,
63 /**
64 * @default Promise
65 */
66 Promise: Function,
67 /**
68 * @default false
69 */
70 overload: boolean
71}
72
73export interface CancelablePromise<T> extends Promise<T>{
74 cancel(reason: string): undefined
75}
76
77export interface OnceOptions {
78 /**
79 * @default 0
80 */
81 timeout: number,
82 /**
83 * @default Promise
84 */
85 Promise: Function,
86 /**
87 * @default false
88 */
89 overload: boolean
90}
91
92export interface ListenToOptions {
93 on?: { (event: event | eventNS, handler: ListenerFn): void },
94 off?: { (event: event | eventNS, handler: ListenerFn): void },
95 reducers: Function | Object
96}
97
98export interface GeneralEventEmitter{
99 addEventListener(event: event, handler: ListenerFn): this,
100 removeEventListener(event: event, handler: ListenerFn): this,
101 addListener?(event: event, handler: ListenerFn): this,
102 removeListener?(event: event, handler: ListenerFn): this,
103 on?(event: event, handler: ListenerFn): this,
104 off?(event: event, handler: ListenerFn): this
105}
106
107export interface OnOptions {
108 async?: boolean,
109 promisify?: boolean,
110 nextTick?: boolean,
111 objectify?: boolean
112}
113
114export interface Listener {
115 emitter: EventEmitter2;
116 event: event|eventNS;
117 listener: ListenerFn;
118 off(): this;
119}
120
121export declare class EventEmitter2 {
122 constructor(options?: ConstructorOptions)
123 emit(event: event | eventNS, ...values: any[]): boolean;
124 emitAsync(event: event | eventNS, ...values: any[]): Promise<any[]>;
125 addListener(event: event | eventNS, listener: ListenerFn): this|Listener;
126 on(event: event | eventNS, listener: ListenerFn, options?: boolean|OnOptions): this|Listener;
127 prependListener(event: event | eventNS, listener: ListenerFn, options?: boolean|OnOptions): this|Listener;
128 once(event: event | eventNS, listener: ListenerFn, options?: true|OnOptions): this|Listener;
129 prependOnceListener(event: event | eventNS, listener: ListenerFn, options?: boolean|OnOptions): this|Listener;
130 many(event: event | eventNS, timesToListen: number, listener: ListenerFn, options?: boolean|OnOptions): this|Listener;
131 prependMany(event: event | eventNS, timesToListen: number, listener: ListenerFn, options?: boolean|OnOptions): this|Listener;
132 onAny(listener: EventAndListener): this;
133 prependAny(listener: EventAndListener): this;
134 offAny(listener: ListenerFn): this;
135 removeListener(event: event | eventNS, listener: ListenerFn): this;
136 off(event: event | eventNS, listener: ListenerFn): this;
137 removeAllListeners(event?: event | eventNS): this;
138 setMaxListeners(n: number): void;
139 getMaxListeners(): number;
140 eventNames(nsAsArray?: boolean): (event|eventNS)[];
141 listenerCount(event?: event | eventNS): number
142 listeners(event?: event | eventNS): ListenerFn[]
143 listenersAny(): ListenerFn[]
144 waitFor(event: event | eventNS, timeout?: number): CancelablePromise<any[]>
145 waitFor(event: event | eventNS, filter?: WaitForFilter): CancelablePromise<any[]>
146 waitFor(event: event | eventNS, options?: WaitForOptions): CancelablePromise<any[]>
147 listenTo(target: GeneralEventEmitter, events: event | eventNS, options?: ListenToOptions): this;
148 listenTo(target: GeneralEventEmitter, events: event[], options?: ListenToOptions): this;
149 listenTo(target: GeneralEventEmitter, events: Object, options?: ListenToOptions): this;
150 stopListeningTo(target?: GeneralEventEmitter, event?: event | eventNS): Boolean;
151 hasListeners(event?: String): Boolean
152 static once(emitter: EventEmitter2, event: event | eventNS, options?: OnceOptions): CancelablePromise<any[]>;
153 static defaultMaxListeners: number;
154}
155
156export default EventEmitter2;