export declare class EventEmitter<T extends unknown[], A> {
    private listeners;
    private resolvers;
    private eventQueue;
    emit: (...args: T) => Promise<A>;
    subscribe(listener: (data: T, eventId: string) => void): void;
    private notifyListeners;
    resolve(eventId: string): (result: A) => void;
    waitForEvent(): Promise<{
        data: T;
        eventId: string;
    }>;
}
export declare function createAsyncIterator<T extends unknown[], A>(emitter: EventEmitter<T, A>): AsyncGenerator<{
    data: T;
    eventId: string;
}>;
