/** * Ported to Typescript from original implementation below: * https://github.com/ahultgren/async-eventemitter -- MIT licensed * * Type Definitions based on work by: patarapolw -- MIT licensed * that was contributed to Definitely Typed below: * https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/async-eventemitter */ /// import { EventEmitter } from 'events'; declare type AsyncListener = ((data: T, callback?: (result?: R) => void) => Promise) | ((data: T, callback?: (result?: R) => void) => void); export interface EventMap { [event: string]: AsyncListener; } export declare class AsyncEventEmitter extends EventEmitter { emit(event: E & string, ...args: Parameters): boolean; once(event: E & string, listener: T[E]): this; first(event: E & string, listener: T[E]): this; before(event: E & string, target: T[E], listener: T[E]): this; after(event: E & string, target: T[E], listener: T[E]): this; private beforeOrAfter; on(event: E & string, listener: T[E]): this; addListener(event: E & string, listener: T[E]): this; prependListener(event: E & string, listener: T[E]): this; prependOnceListener(event: E & string, listener: T[E]): this; removeAllListeners(event?: keyof T & string): this; removeListener(event: E & string, listener: T[E]): this; eventNames(): Array; listeners(event: E & string): Array; listenerCount(event: keyof T & string): number; getMaxListeners(): number; setMaxListeners(maxListeners: number): this; } export {}; //# sourceMappingURL=asyncEventEmitter.d.ts.map