/// import { EventEmitter } from 'events'; import { OverloadedParameters } from './overloaded-parameters'; export declare type FirstParameter = T extends [infer R, ...any[]] ? R : never; export declare type EventListener = F extends [ T, infer R, ...any[] ] ? R : never; export declare type EventParameters = OverloadedParameters; export declare type EventNames = FirstParameter>; export declare type EventListenerParameters> = WithDefault, Event>>, unknown[]>; export declare type WithDefault = [T] extends [never] ? D : T; export interface AbortSignal { addEventListener: (name: string, listener: (...args: any[]) => any) => void; removeEventListener: (name: string, listener: (...args: any[]) => any) => void; }