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> | ExpressCassandraModuleOptions;
}
export declare type ExpressCassandraConnectionFactory = (options?: ConnectionOptions) => Promise<Connection>;
export interface ExpressCassandraModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'>, Pick<FactoryProvider, 'inject'> {
    name?: string;
    useExisting?: Type<ExpressCassandraOptionsFactory>;
    useClass?: Type<ExpressCassandraOptionsFactory>;
    useFactory: (...args: never[]) => Promise<ExpressCassandraModuleOptions> | ExpressCassandraModuleOptions;
    connectionFactory?: ExpressCassandraConnectionFactory;
}
