import { Counter, Histogram } from 'prom-client';
import { RabbitmqProducerConfig, RabbitmqClientConfig } from './RabbitmqConfig';
import { PublishOptions, RabbitmqClient } from './RabbitmqClient';
export declare class RabbitmqProducer extends RabbitmqClient {
    publishFailures: Counter.Internal;
    publishDurationHistogram: Histogram.Internal;
    protected producerConfig: RabbitmqProducerConfig;
    constructor(clientConfig: RabbitmqClientConfig, name: string, producerConfig: RabbitmqProducerConfig);
    /**
     * publish msg with routing key
     * @param msg
     * @param routingKey
     */
    publish(msg: string, routingKey: string, optionsPublish?: PublishOptions): Promise<boolean>;
    init(): Promise<void>;
    close(): Promise<void>;
}
