export declare type IdOrObject = T | T[Tid]; export interface Entity { create: (attrs?: T) => Promise; delete: (idOrObject: IdOrObject) => Promise; find: (criteria: object) => Promise; findBy: (criteria: object) => Promise; findById: (idOrObject: IdOrObject) => Promise; update: (idOrObject: IdOrObject, attrs: Partial) => Promise; } export interface EntityMap { [name: string]: Entity; } export interface EntityOptions { onCreate?: (attrs: Partial | undefined) => T | Promise; onUpdate?: (attrs: Partial | undefined, id: T[Tid], entity: Entity) => Partial | Promise>; }