///
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;
}