type BufferEncoding = | 'ascii' | 'base64' | 'binary' | 'hex' | 'latin1' | 'ucs-2' | 'ucs2' | 'utf-16le' | 'utf-8' | 'utf16le' | 'utf8' interface EventMap { [event: string | symbol]: unknown[] } interface EventHandler { (...args: A): R } interface EventEmitter { addListener(name: E, fn: EventHandler): this addOnceListener(name: E, fn: EventHandler): this prependListener(name: E, fn: EventHandler): this prependOnceListener(name: E, fn: EventHandler): this removeListener(name: E, fn: EventHandler): this removeAllListeners(name?: E): this on(name: E, fn: EventHandler): this once(name: E, fn: EventHandler): this off(name: E, fn: EventHandler): this emit(name: E, ...args: M[E]): boolean listeners(name: E): EventHandler rawListeners(name: E): EventHandler[] eventNames(): (keyof M)[] listenerCount(name: E): number getMaxListeners(): number setMaxListeners(n: number): void } export { BufferEncoding, EventMap, EventEmitter }