import { MongoClient } from 'mongodb'; import { Database, SeederDatabaseConfig, SeederDatabaseConfigObject } from '.'; import { SeederDatabaseConfigObjectOptions } from './config'; /** * Provides functionality to manage connection to a MongoDB database. */ export declare class DatabaseConnector { /** * Default database name. */ static DEFAULT_DB_NAME: string; /** * Default reconnect timeout in milliseconds. */ static DEFAULT_RECONNECT_TIMEOUT_MILLIS: number; /** * Sleep interval in milliseconds. */ static SLEEP_INTERVAL_MILLIS: number; /** * Masked URI credentials token. */ static MASKED_URI_CREDENTIALS: string; /** * MongoDB Client. */ client?: MongoClient; /** * Reconnect timeout in milliseconds. */ reconnectTimeoutMillis: number; /** * Constructs the `DatabaseConnector` object. * * @param reconnectTimeoutMillis Reconnect timeout in milliseconds */ constructor(reconnectTimeoutMillis?: number); /** * Connects to database. * * @param config Database configuration */ connect(config: SeederDatabaseConfig): Promise; /** * Connects to database using database connection URI. * * @param dbConnectionUri Database connection URI * @param dbName Database name */ connectWithUri(dbConnectionUri: string, dbName: string): Promise; /** * Closes connection with database. */ close(): Promise; /** * Constructs database connection URI from database configuration object. * * @param param0 Database connection object */ getDbConnectionUri({ protocol, host, port, name, username, password, options, }: SeederDatabaseConfigObject): string; /** * Constructs database connection options query string from database configuration object. * * @param options Database configuration object */ getOptionsUriPart(options: SeederDatabaseConfigObjectOptions): string; /** * Detects database connection credentials and masks them, replacing with masked URI credentials token. * * @param uri Database connection URI */ maskUriCredentials(uri: string): string; /** * Extracts database name from database connection URI. * * @param dbConnectionUri Database connection URI */ getDbName(dbConnectionUri: string): string; }