import { AbstractAdapter, AbstractModel } from "../AbstractModel"; import { FindOptions } from "../AbstractModel"; import Waterline from "waterline"; export declare class WaterlineModel extends AbstractModel { private model; constructor(modelName: string, model: any); protected _create(data: T): Promise; /** Custom populate all function */ private populateAll; protected _findOne(criteria: Partial): Promise; protected _find(criteria?: Partial, options?: FindOptions): Promise; protected _updateOne(criteria: Partial, data: Partial): Promise; protected _update(criteria: Partial, data: Partial): Promise; protected _destroyOne(criteria: Partial): Promise; protected _destroy(criteria: Partial): Promise; protected _count(criteria?: Partial): Promise; } export declare class WaterlineAdapter extends AbstractAdapter { Model: any; /** In case of waterline, we are storing complex object in "orm" field of our AbstractAdapter. * It contains waterline orm and waterline ontology. One for storing methods like registerModel and initialize, * the other for storing collections with methods find, create etc. Also, we need waterlineConfig */ constructor(orm: { orm: Waterline.Waterline; ontology: Waterline.Ontology; }); get models(): Record; getModel(modelName: string): Record; getAttributes(modelName: string): Waterline.Attributes; /** Method that processes custom waterline model creation. Is used for system models. Replaces beforeCreate method in waterline */ static registerSystemModels(waterlineORM: Waterline.Waterline): Promise; }