import EventEmitter from 'events';
import { Tracer } from '@opentelemetry/api';
type DefaultEventMap = [never];
type EventMap<T> = Record<keyof T, any[]> | DefaultEventMap;
type Key<K, T> = T extends DefaultEventMap ? string | symbol : K | keyof T;
type Listener<K, T, F> = T extends DefaultEventMap ? F : K extends keyof T ? T[K] extends unknown[] ? (...args: T[K]) => void : never : never;
type Listener1<K, T> = Listener<K, T, (...args: any[]) => void>;
export declare class TracedEventEmitter<TEventMap extends EventMap<TEventMap>> extends EventEmitter<TEventMap> {
    private readonly tracer;
    constructor(tracer: Tracer, options?: {
        captureRejections?: boolean;
    });
    on<K>(eventName: Key<K, TEventMap>, listener1: Listener1<K, TEventMap>): this;
}
export {};
//# sourceMappingURL=tracedEventEmitter.d.ts.map