import { OnApplicationBootstrap, OnApplicationShutdown, OnModuleInit } from "@nestjs/common";
import { AmqpConnectionManager, ChannelWrapper } from "amqp-connection-manager";
import { RabbitOptionsFactory } from "./rabbitmq.interfaces";
import { ConnectionType, RabbitMQModuleOptions } from "./rabbitmq.types";
export declare class AMQPConnectionManager implements OnModuleInit, OnApplicationBootstrap, OnApplicationShutdown {
    private readonly logger;
    private rabbitTerminalErrors;
    private defaultOptions;
    static rabbitModuleOptions: RabbitMQModuleOptions;
    static publishChannelWrapper: ChannelWrapper;
    static consumerConn: AmqpConnectionManager;
    static publisherConn: AmqpConnectionManager;
    static isConsumersLoaded: boolean;
    private connectionBlockedReason;
    private consumers;
    constructor(options: RabbitOptionsFactory);
    onModuleInit(): Promise<void>;
    onApplicationBootstrap(): Promise<void>;
    onApplicationShutdown(): Promise<void>;
    getConsumers(): import("amqp-connection-manager/dist/types/ChannelWrapper").default[];
    private connect;
    private attachEvents;
    getConnection(type: ConnectionType): AmqpConnectionManager;
    private assertExchanges;
    private createConsumers;
    private checkDuplicatedQueues;
}
