import type { OnModuleInit } from '@nestjs/common';
import type { AbstractPubsubEvent } from '../interface';
import { PublishOptions } from '../interface';
import { PubsubManager } from './PubsubManager';
import { PubSubReflector } from './PubSubReflector';
export declare class Producer extends PubsubManager implements OnModuleInit {
    private readonly reflector;
    private readonly producerOptions;
    /**
     * Set of exchanges where messages are published to
     */
    private readonly exchanges;
    constructor(reflector: PubSubReflector, producerOptions: PublishOptions);
    onModuleInit(): Promise<void>;
    /**
     * Produce an event.
     */
    produce(event: AbstractPubsubEvent<any>): Promise<void>;
    protected headers(extra?: PublishOptions): PublishOptions;
    protected producerConfiguration(): PublishOptions;
}
