import * as plugins from './smartdata.plugins'; import { Db } from './smartdata.classes.db'; import { DbDoc } from './smartdata.classes.dbdoc'; export interface IFindOptions { limit?: number; } export interface IDocValidation { (doc: T): boolean; } export declare function Collection(db: Db): (constructor: any) => void; export declare class DbCollection { /** * the collection that is used, defaults to mongodb collection, * can be nedb datastore (sub api of mongodb) */ collection: plugins.mongodb.Collection; collectedClass: T & DbDoc; objectValidation: IDocValidation; name: string; db: Db; constructor(collectedClassArg: T & DbDoc, dbArg: Db); /** * adds a validation function that all newly inserted and updated objects have to pass */ addDocValidation(funcArg: IDocValidation): void; /** * finds an object in the DbCollection */ find(docMatchArg: T | any, optionsArg?: IFindOptions): Promise; /** * inserts object into the DbCollection */ insertOne(docArg: T): Promise; /** * inserts many objects at once into the DbCollection */ insertMany(docArrayArg: T[]): Promise; /** * checks a Doc for constraints */ private checkDoc(docArg); }