import { ModuleMetadata, Type } from '@nestjs/common';
import { Transport } from '@nestjs/microservices';
export interface NatsOptions {
    transport: Transport.NATS;
    options: {
        servers: string[];
        queue?: string;
        name?: string;
        timeout?: number;
        reconnect?: boolean;
        reconnectTimeWait?: number;
        maxReconnectAttempts?: number;
    };
}
export interface NatsOptionsFactory {
    createNatsOptions(): Promise<NatsOptions> | NatsOptions;
}
export interface NatsAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
    useExisting?: Type<NatsOptionsFactory>;
    useClass?: Type<NatsOptionsFactory>;
    useFactory?: (...args: any[]) => Promise<NatsOptions> | NatsOptions;
    inject?: any[];
}
