import { Type } from '@nestjs/common'; import { ModuleMetadata } from '@nestjs/common/interfaces'; import { SequelizeOptions } from 'sequelize-typescript'; export type SequelizeModuleOptions = { name?: string; retryAttempts?: number; retryDelay?: number; autoLoadModels?: boolean; synchronize?: boolean; uri?: string; autoCloseConnection?: boolean; } & Partial; export interface SequelizeOptionsFactory { createSequelizeOptions(connectionName?: string): Promise | SequelizeModuleOptions; } export interface SequelizeModuleAsyncOptions extends Pick { name?: string; useExisting?: Type; useClass?: Type; useFactory?: (...args: any[]) => Promise | SequelizeModuleOptions; inject?: any[]; }