///
import { EventEmitter } from 'events';
import * as mongodb from 'mongodb';
import MongoMemoryServer from './MongoMemoryServer';
import { MongoBinaryOpts } from './util/MongoBinary';
import { DebugFn, MongoMemoryInstancePropT, MongoMemoryInstancePropBaseT, SpawnOptions, StorageEngineT } from './types';
/**
* Replica set specific options.
*
* @property {boolean} auth enable auth; (default: false)
* @property {string[]} args additional command line args passed to `mongod`
* @property {number} count number of `mongod` servers to start (default: 1)
* @property {string} dbName database name used in connection string (default: uuid)
* @property {string} ip bind to all IP addresses specify `::,0.0.0.0`; (default '127.0.0.1')
* @property {string} name replSet name (default: 'testset')
* @property {number} oplogSize oplog size (in MB); (default: 1)
* @property {StorageEngineT} storageEngine `mongod` storage engine type; (default: 'ephemeralForTest')
*/
export interface ReplSetOpts {
auth?: boolean;
args?: string[];
count?: number;
dbName?: string;
ip?: string;
name?: string;
oplogSize?: number;
spawn?: SpawnOptions;
storageEngine?: StorageEngineT;
configSettings?: MongoMemoryReplSetConfigSettingsT;
}
export interface MongoMemoryReplSetConfigSettingsT {
chainingAllowed?: boolean;
heartbeatTimeoutSecs?: number;
heartbeatIntervalMillis?: number;
electionTimeoutMillis?: number;
catchUpTimeoutMillis?: number;
}
export interface MongoMemoryReplSetOptsT {
instanceOpts?: MongoMemoryInstancePropBaseT[];
binary?: MongoBinaryOpts;
replSet?: ReplSetOpts;
autoStart?: boolean;
debug?: boolean;
}
export default class MongoMemoryReplSet extends EventEmitter {
servers: MongoMemoryServer[];
opts: {
instanceOpts: MongoMemoryInstancePropBaseT[];
binary: MongoBinaryOpts;
replSet: Required;
debug: boolean;
autoStart?: boolean;
};
debug: DebugFn;
_state: 'init' | 'running' | 'stopped';
admin?: mongodb.Admin;
constructor(opts?: MongoMemoryReplSetOptsT);
getConnectionString(otherDb?: string | boolean): Promise;
/**
* Returns database name.
*/
getDbName(): Promise;
/**
* Returns instance options suitable for a MongoMemoryServer.
* @param {MongoMemoryInstancePropBaseT} baseOpts
*/
getInstanceOpts(baseOpts?: MongoMemoryInstancePropBaseT): MongoMemoryInstancePropT;
/**
* Returns a mongodb: URI to connect to a given database.
*/
getUri(otherDb?: string | boolean): Promise;
/**
* Start underlying `mongod` instances.
*/
start(): Promise;
/**
* Stop the underlying `mongod` instance(s).
*/
stop(): Promise;
waitUntilRunning(): Promise;
/**
* Connects to the first server from the list of servers and issues the `replSetInitiate`
* command passing in a new replica set configuration object.
*/
_initReplSet(): Promise;
_initServer(instanceOpts: MongoMemoryInstancePropT): MongoMemoryServer;
_waitForPrimary(timeout?: number): Promise;
}
//# sourceMappingURL=MongoMemoryReplSet.d.ts.map