import { Type, ModuleMetadata } from '@nestjs/common';
import { ClientConfigurationInput } from 'slonik';
export interface SlonikOptions {
    connectionUri: string;
    clientConfigurationInput?: ClientConfigurationInput;
}
export interface SlonikModuleOptions extends SlonikOptions {
    name?: string;
    toRetry?: (err: any) => boolean;
    verboseRetryLog?: boolean;
    retryAttempts?: number;
    retryDelay?: number;
}
export interface SlonikOptionsFactory {
    createSlonikOptions(poolName?: string): Promise<SlonikModuleOptions> | SlonikModuleOptions;
}
export interface SlonikModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
    name?: string;
    useExisting?: Type<SlonikOptionsFactory>;
    useClass?: Type<SlonikOptionsFactory>;
    useFactory?: (...args: any[]) => Promise<SlonikModuleOptions> | SlonikModuleOptions;
    inject?: any[];
}
