import { Observable } from 'rxjs';
import { Query } from 'blow-query';
import { DataConnector } from './connectors/DataConnector';
import { Entity } from './Entity';
export declare class Collection<T extends Entity> {
    protected _name: string;
    protected _connection: DataConnector;
    constructor(name: string, connection: DataConnector);
    readonly name: string;
    readonly connection: DataConnector;
    count(query?: Query): Observable<number>;
    delete(query?: Query): Observable<number>;
    deleteById(id: any): Observable<boolean>;
    find(query?: Query): Observable<T>;
    get(id: any): Observable<T>;
    save(doc: Entity): Observable<T>;
    updateAttributes(id: any, doc: Entity): Observable<T>;
}
