import * as plugins from './smartmongo.plugins.js';
export declare class SmartMongo {
    static createAndStart(replCountArg?: number): Promise<SmartMongo>;
    private _readyDeferred;
    readyPromise: Promise<unknown>;
    mongoReplicaSet: plugins.mongoPlugin.MongoMemoryReplSet;
    constructor();
    start(countArg?: number): Promise<void>;
    /**
     * returns a mongo descriptor for modules like
     * @pushrocks/smartfile.
     */
    getMongoDescriptor(): Promise<plugins.smartdata.IMongoDescriptor>;
    /**
     * stops the smartmongo instance
     * and cleans up after itself
     */
    stop(): Promise<void>;
    /**
     * like stop() but allows you to actually store
     * the database on disk
     */
    stopAndDumpToDir(dirArg: string, nameFunctionArg?: (doc: any) => string, emptyDirArg?: boolean): Promise<void>;
}
