import { Observable } from 'rxjs';
import * as mongodb from 'mongodb';
export interface ConnectOptions {
    uriDecodeAuth: boolean;
    db: Object;
    server: Object;
    replSet: Object;
    mongos: Object;
}
export declare const ObjectID: typeof mongodb.ObjectID;
export declare class MongoClient {
    static connect(url: string, options?: ConnectOptions): Observable<Db>;
}
export declare class Db {
    protected _db: mongodb.Db;
    constructor(db: mongodb.Db);
    collection<T>(name: string): Collection<T>;
    close(): Observable<boolean>;
}
export declare class Collection<T> {
    protected _collection: mongodb.Collection;
    constructor(collection: mongodb.Collection);
    find(query?: any): Observable<T>;
    count(query?: any): Observable<number>;
    delete(query?: any): Observable<number>;
    insert(doc: any): Observable<T>;
    update(query: any, doc: any): Observable<T>;
}
