import { ModuleRef } from '@nestjs/core';
import type { IEvent } from '@nestjs/cqrs';
import { EventBus as NestEventBus, UnhandledExceptionBus } from '@nestjs/cqrs';
import { CommandBus } from './CommandBus';
import { Producer } from './Producer';
import { Publisher } from './Publisher';
export declare class EventBus extends NestEventBus<IEvent> {
    private readonly producer;
    private _pubSubPublisher;
    get publisher(): Publisher;
    set publisher(pubSubPublisher: Publisher);
    constructor(commandBus: CommandBus, moduleRefs: ModuleRef, unhandledExceptionBus: UnhandledExceptionBus, producer: Producer);
    publish<T extends IEvent>(event: T): Promise<void>;
    publishAll<T extends IEvent>(events: T[]): Promise<void>;
    private usePubSubPublisher;
}
