import { ConfirmChannel, Connection } from "amqplib";
import { Provider, OnApplicationBootstrap } from "@nestjs/common";
import { DiscoveryService, MetadataScanner, Reflector } from "@nestjs/core";
import { AmqpConfig } from "./amqp.interface";
export declare class AmqpService implements OnApplicationBootstrap {
    private readonly discoveryService;
    private readonly metadataScanner;
    private readonly reflector;
    private readonly amqpConfig;
    static amqpProviders: Provider[];
    private logger;
    private needReconnect;
    private reconnectTimer;
    private _connection;
    private _channel;
    readonly connection: Connection;
    readonly channel: ConfirmChannel;
    readonly config: AmqpConfig;
    constructor(discoveryService: DiscoveryService, metadataScanner: MetadataScanner, reflector: Reflector, amqpConfig: AmqpConfig);
    amqpInit(): Promise<void>;
    onApplicationBootstrap(): void;
    amqpDestroy(): Promise<void>;
    private connect;
    createChannel(): Promise<void>;
    private explore;
    private initConsumer;
    onConnectionClose(): void;
    closeChannel(): Promise<void>;
    onChannelError(error: any): Promise<void>;
    onChannelClose(): Promise<void>;
}
