import { MongoClientOptions } from 'mongodb';
import { Database } from '.';
import { LogFn } from '../common';
/**
 * Provides functionality to manage connection to a MongoDB database.
 */
export declare class DatabaseConnector {
    /**
     * Masked URI credentials token.
     */
    static MASKED_URI_CREDENTIALS: string;
    static DEFAULT_CLIENT_OPTIONS: MongoClientOptions;
    /**
     * MongoDB Client options
     */
    clientOptions: MongoClientOptions;
    /**
     * Logger instance
     */
    log: LogFn;
    /**
     * Constructs the `DatabaseConnector` object.
     *
     * @param reconnectTimeoutMillis Reconnect timeout in milliseconds. Ignored when custom MongoClientOptions are passed.
     * @param mongoClientOptions Optional Mongo Client options
     * @param log Optional logger
     */
    constructor(reconnectTimeoutMillis?: number, mongoClientOptions?: MongoClientOptions, log?: LogFn);
    /**
     * Connects to database.
     *
     * @param connectionString Database connection string
     */
    connect(connectionString: string): Promise<Database>;
    /**
     * Detects database connection credentials and masks them, replacing with masked URI credentials token.
     *
     * @param uri Database connection URI
     */
    private maskUriCredentials;
}
