import { IDatabase } from './IDatabase';
import { MongoDBConfig } from './types';
export declare class MongoDBDatabase extends IDatabase {
    private client;
    private db;
    private _isConnected;
    private _queue;
    constructor(config: MongoDBConfig);
    private _connect;
    private _flushQueue;
    private _flushQueueWithError;
    private _execute;
    insert(collection: string, data: any): Promise<string>;
    update(collection: string, data: any, where: any): Promise<number>;
    delete(collection: string, where: any): Promise<number>;
    select<T = any>(collection: string, where?: any): Promise<T[]>;
    selectOne<T = any>(collection: string, where?: any): Promise<T | null>;
    set(collection: string, data: any, where: any): Promise<any>;
    bulkInsert(collection: string, dataArray: any[]): Promise<number>;
    increment(collection: string, incs: Record<string, number>, where?: any): Promise<number>;
    decrement(collection: string, decs: Record<string, number>, where?: any): Promise<number>;
    close(): Promise<void>;
    private _formatQuery;
    private _serialize;
}
export default MongoDBDatabase;
