import { ModuleMetadata, Type } from '@nestjs/common'; import { ConnectOptions, MongooseError } from 'mongoose'; export interface MongooseModuleOptions extends ConnectOptions { uri?: string; retryAttempts?: number; retryDelay?: number; connectionName?: string; connectionFactory?: (connection: any, name: string) => any; connectionErrorFactory?: (error: MongooseError) => MongooseError; lazyConnection?: boolean; } export interface MongooseOptionsFactory { createMongooseOptions(): Promise | MongooseModuleOptions; } export type MongooseModuleFactoryOptions = Omit; export interface MongooseModuleAsyncOptions extends Pick { connectionName?: string; useExisting?: Type; useClass?: Type; useFactory?: (...args: any[]) => Promise | MongooseModuleFactoryOptions; inject?: any[]; }