///
///
///
///
///
import { Hydrator } from './hydrator';
import { AdamantDeletedMeta, AdamantRevMeta } from './meta-interfaces';
import { EntityMetadataCollection } from './metadata';
import { Ctor } from './utils/metadata';
import { Validator } from './validator';
export declare enum BulkOperation {
Create = "create",
Update = "update",
Delete = "delete"
}
export declare class Bulk {
protected readonly db: PouchDB.Database;
protected readonly entityClass: Ctor;
protected readonly metadata: EntityMetadataCollection;
protected readonly hydrator: Hydrator;
protected readonly validator: Validator;
constructor(db: PouchDB.Database, entityClass: Ctor, metadata: EntityMetadataCollection, hydrator: Hydrator, validator: Validator);
protected bulk(entities: T[], operation: BulkOperation): Promise<(T & AdamantRevMeta & AdamantDeletedMeta)[]>;
create(entities: T[]): Promise<(T & AdamantRevMeta)[]>;
update(entities: T[]): Promise<(T & AdamantRevMeta)[]>;
delete(entities: T[]): Promise<(T & AdamantRevMeta & AdamantDeletedMeta)[]>;
}
export declare const ADAMANT_BULK_PROVIDER: {
provide: typeof Bulk;
useFactory(db: PouchDB.Database, entityClass: Ctor, metadata: EntityMetadataCollection, hydrator: Hydrator, validator: Validator): Bulk;
deps: any[];
};