import { DynamicModule, Logger, OnApplicationBootstrap, OnApplicationShutdown } from '@nestjs/common';
import { ClientRMQ } from '@nestjs/microservices';
import type { RabbitmqConnectionOptions, RabbitmqModuleAsyncOptions, RabbitmqModuleOptions } from './types.js';
export declare class RabbitmqCoreModule implements OnApplicationShutdown, OnApplicationBootstrap {
    protected client: ClientRMQ;
    private connectionOptions;
    private logger?;
    /**
     *
     */
    static forRoot(moduleOptions: RabbitmqModuleOptions): DynamicModule;
    /**
     *
     */
    static forRootAsync(asyncOptions: RabbitmqModuleAsyncOptions): DynamicModule;
    private static _createDynamicModule;
    /**
     *
     * @constructor
     */
    constructor(client: ClientRMQ, connectionOptions: RabbitmqConnectionOptions, logger?: Logger | undefined);
    onApplicationBootstrap(): Promise<void>;
    onApplicationShutdown(): void;
}
