import { OnModuleInit, Provider } from '@nestjs/common';
import { AzureServiceBusClient } from '../clients/azure-service-bus.client';
import { AzureServiceBusOptions, AzureServiceBusProviderAsyncOption, Sender } from '../interfaces';
import { ExplorerService } from '../services/explorer.service';
export declare class AzureServiceBusModule implements OnModuleInit {
    private readonly explorerService;
    constructor(explorerService: ExplorerService);
    onModuleInit(): Promise<void>;
    private registerSubscribeMethods;
    static forRoot(option: AzureServiceBusOptions): {
        module: typeof AzureServiceBusModule;
        providers: {
            provide: typeof AzureServiceBusClient;
            useValue: AzureServiceBusClient;
        }[];
        exports: {
            provide: typeof AzureServiceBusClient;
            useValue: AzureServiceBusClient;
        }[];
    };
    static forRootAsync(option: AzureServiceBusProviderAsyncOption): {
        module: typeof AzureServiceBusModule;
        imports: (import("@nestjs/common").Type<any> | import("@nestjs/common").DynamicModule | Promise<import("@nestjs/common").DynamicModule> | import("@nestjs/common").ForwardReference<any>)[];
        providers: Provider[];
        exports: Provider[];
    };
    private static createAsyncOptionsProvider;
    private static createFactoryWrapper;
    static forFeature(senders: Sender[]): {
        module: typeof AzureServiceBusModule;
        providers: {
            provide: string;
            useFactory: (client: AzureServiceBusClient) => Promise<import("../interfaces").Emit>;
            inject: (typeof AzureServiceBusClient)[];
        }[];
        exports: {
            provide: string;
            useFactory: (client: AzureServiceBusClient) => Promise<import("../interfaces").Emit>;
            inject: (typeof AzureServiceBusClient)[];
        }[];
    };
    private static assignOnAppShutdownHook;
}
