import type { IEvent } from '@nestjs/cqrs';
import { DefaultPubSub } from '@nestjs/cqrs/dist/helpers/default-pubsub';
import { Subject } from 'rxjs';
import { Producer } from './Producer';
export declare class Publisher<EventBase extends IEvent = IEvent> extends DefaultPubSub<EventBase> {
    private readonly producer;
    constructor(subject$: Subject<EventBase>, producer: Producer);
    publish<T extends EventBase>(event: T): Promise<void>;
    publishLocally<T extends EventBase>(event: T): void;
}
