import { Connector } from './connector'; import { Entity } from './model'; import { Filter, Where } from './query'; import { Class, ObjectType, Options } from './common-types'; export declare type EntityData = ObjectType; /** * CRUD operations for connector implementations */ export interface CrudConnector extends Connector { /** * Create a new entity */ create(modelClass: Class, entity: EntityData, options?: Options): Promise; createAll?(modelClass: Class, entities: EntityData[], options?: Options): Promise; save?(modelClass: Class, entity: EntityData, options?: Options): Promise; /** * Find matching entities by the filter */ find(modelClass: Class, filter?: Filter, options?: Options): Promise; findById?(modelClass: Class, id: IdType, options?: Options): Promise; update?(modelClass: Class, entity: EntityData, options?: Options): Promise; delete?(modelClass: Class, entity: EntityData, options?: Options): Promise; /** * Update matching entities */ updateAll(modelClass: Class, data: EntityData, where?: Where, options?: Options): Promise; updateById?(modelClass: Class, id: IdType, data: EntityData, options?: Options): Promise; replaceById?(modelClass: Class, id: IdType, data: EntityData, options?: Options): Promise; /** * Delete matching entities */ deleteAll(modelClass: Class, where?: Where, options?: Options): Promise; deleteById?(modelClass: Class, id: IdType, options?: Options): Promise; /** * Count matching entities */ count(modelClass: Class, where?: Where, options?: Options): Promise; exists?(modelClass: Class, id: IdType, options?: Options): Promise; }