import { OnApplicationBootstrap } from "@nestjs/common";
import { ChannelWrapper } from "amqp-connection-manager";
import { PublishOptions } from "amqp-connection-manager/dist/types/ChannelWrapper";
export declare class RabbitMQService implements OnApplicationBootstrap {
    private logType;
    private logger;
    onApplicationBootstrap(): void;
    /**
     * Check status of the main conenection to the broker.
     * @returns {number} 1 - Online | 0 - Offline
     */
    checkHealth(): number;
    /**
     * Publishes a message to the broker. Every published message needs its exchange and routingKey to be properly routed
     * @param {string} exchangeName - Name of the exchange
     * @param {string} routingKey - Publish routing key
     * @param {T} the message that will be published to RabbitMQ. All messages will be transformed to JSON.
     * @param {PublishOptions} options - Any custom options that you want to send with the message such as headers or properties
     * @returns {Promise<boolean>} Returns a promise of confirmation.
     * If **TRUE** it means that the message arrived and was successfully delivered to an exchange or queue.
     * If **FALSE** or an error is thrown, the message was not published !
     */
    publish<T = any>(exchangeName: string, routingKey: string, message: T, options?: PublishOptions): Promise<boolean>;
    createConsumers(): Promise<ChannelWrapper[]>;
    private inspectPublisher;
}
