UNPKG

1.5 kBTypeScriptView Raw
1export type EventHandler = ((arg1: any, arg2: any, arg3: any, arg4: any) => void) | ((arg1: any, arg2: any, arg3: any) => void) | ((arg1: any, arg2: any) => void) | ((arg1: any) => void) | ((...args: any[]) => void);
2export interface TypedEventEmitter<TEvents extends Record<keyof TEvents, EventHandler>> {
3 on<TEvent extends keyof TEvents>(event: TEvent, callback: TEvents[TEvent]): this;
4 once<TEvent extends keyof TEvents>(event: TEvent, callback: TEvents[TEvent]): this;
5 prependListener<TEvent extends keyof TEvents>(event: TEvent, callback: TEvents[TEvent]): this;
6 prependOnceListener<TEvent extends keyof TEvents>(event: TEvent, callback: TEvents[TEvent]): this;
7 removeListener<TEvent extends keyof TEvents>(event: TEvent, callback: TEvents[TEvent]): this;
8 off<TEvent extends keyof TEvents>(event: TEvent, callback: TEvents[TEvent]): this;
9 removeAllListeners(event?: keyof TEvents): this;
10 emit<TEvent extends keyof TEvents>(event: TEvent, ...args: Parameters<TEvents[TEvent]>): boolean;
11 setMaxListeners(n: number): this;
12 getMaxListeners(): number;
13 listeners<TEvent extends keyof TEvents>(eventName: TEvent): TEvents[TEvent][];
14 rawListeners<TEvent extends keyof TEvents>(eventName: TEvent): TEvents[TEvent][];
15 listenerCount<TEvent extends keyof TEvents>(event: TEvent, listener?: TEvents[TEvent]): number;
16 eventNames(): Array<keyof TEvents>;
17}
18export declare class TypedEventEmitter<TEvents extends Record<keyof TEvents, EventHandler>> {
19}
20
\No newline at end of file