import { ModuleMetadata, Type } from '@nestjs/common'; import { FactoryProvider } from '@nestjs/common/interfaces/modules/provider.interface'; import Connection from '../connection'; import { ConnectionOptions } from './connection.interface'; export interface ExpressCassandraModuleOptions extends ConnectionOptions { keepConnectionAlive?: boolean; } export interface ExpressCassandraOptionsFactory { createExpressCassandraOptions( connectionName?: string, ): Promise | ExpressCassandraModuleOptions; } export type ExpressCassandraConnectionFactory = ( options?: ConnectionOptions, ) => Promise; export interface ExpressCassandraModuleAsyncOptions extends Pick, Pick { name?: string; useExisting?: Type; useClass?: Type; useFactory: ( ...args: never[] ) => Promise | ExpressCassandraModuleOptions; connectionFactory?: ExpressCassandraConnectionFactory; }