import { Observable } from 'rxjs';
import { Collection } from 'blow-collection';
import { IQueryWhere, IQuery, IQueryObject } from 'blow-query';
import { Adapter } from './Adapter';
import { IPersistedAdapter, IModelMetadata } from '../interfaces';
export declare class MemoryAdapter extends Adapter implements IPersistedAdapter {
    protected _db: Map<string, Collection<any>>;
    protected _connect(): Observable<MemoryAdapter>;
    protected _collection(metadata: IModelMetadata): Collection<any>;
    protected _prepareQuery(query: IQuery | IQueryObject): IQueryObject;
    count(metadata: IModelMetadata, where?: IQueryWhere): Observable<number>;
    create(metadata: IModelMetadata, data: any): Observable<any>;
    destroy(metadata: IModelMetadata, where?: IQueryWhere): Observable<number>;
    destroyById(metadata: IModelMetadata, id: any): Observable<boolean>;
    exists(metadata: IModelMetadata, id: any): Observable<boolean>;
    find(metadata: IModelMetadata, query?: IQuery | IQueryObject): Observable<any>;
    findOne(metadata: IModelMetadata, query?: IQuery | IQueryObject): Observable<any>;
    findById(metadata: IModelMetadata, id: any): Observable<any>;
    findOrCreate(metadata: IModelMetadata, where: IQueryWhere, data: any): Observable<any>;
    update(metadata: IModelMetadata, where: IQueryWhere, data: any): Observable<number>;
    updateOrCreate(metadata: IModelMetadata, data: any): Observable<any>;
    static toDB(data: any): any;
}
