import { DynamicModule } from '@nestjs/common';
import { NatsOptions, RedisOptions, Transport } from '@nestjs/microservices';
export type NatsTransportOptions = NatsOptions['options'];
export type RedisTransportOptions = RedisOptions['options'];
export interface BaseTransportConfig {
    name?: string;
    transport: Transport;
}
export interface NatsTransportConfig extends BaseTransportConfig {
    transport: Transport.NATS;
    options: NatsTransportOptions;
}
export interface RedisTransportConfig extends BaseTransportConfig {
    transport: Transport.REDIS;
    options: RedisTransportOptions;
}
export type TransportConfigOptions = NatsTransportConfig | RedisTransportConfig;
export interface TransportModuleOptions {
    clients: TransportConfigOptions[];
    isGlobal?: boolean;
}
export declare class TransportClientModule {
    static register(options: TransportModuleOptions): DynamicModule;
    static registerAsync(options: {
        useFactory: (...args: any[]) => Promise<TransportModuleOptions> | TransportModuleOptions;
        inject?: any[];
        isGlobal?: boolean;
    }): DynamicModule;
}
export declare const createDefaultTransportModule: (servers: string[]) => DynamicModule;
