import { Type } from '@nestjs/common';
import { ModuleMetadata } from '@nestjs/common/interfaces';
import { Connection, ConnectionOptions } from '../orm';
export declare type ScyllaModuleOptions = {
    keepConnectionAlive?: boolean;
    retryAttempts?: number;
    retryDelay?: number;
    isGlobal?: boolean;
} & Partial<ConnectionOptions>;
export declare type ScyllaFeaturesModuleOptions = {
    entities: Function[];
    isGlobal?: boolean;
    connection?: Connection | ConnectionOptions | string;
};
export interface ScyllaOptionsFactory {
    createScyllaOptions(): Promise<ScyllaModuleOptions> | ScyllaModuleOptions;
}
export interface ScyllaModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
    name?: string;
    inject?: any[];
    isGlobal?: boolean;
    useClass?: Type<ScyllaOptionsFactory>;
    useExisting?: Type<ScyllaOptionsFactory>;
    useFactory?: (...args: any[]) => Promise<ScyllaModuleOptions> | ScyllaModuleOptions;
}
