import { IChassisContext, IChassisDataStore, IChassisPlugin, IOperation } from "../interfaces"; import { CRUDMiddleware } from "./CRUDMiddleware"; import { APIContext } from "../helpers/APIs"; /************************************************************************* * * Troven CONFIDENTIAL * __________________ * * (c) 2017-2020 Troven Ventures Pty Ltd. All Rights Reserved. * * NOTICE: All information contained herein is, and remains * the property of Troven Pty Ltd and its licensors, * if any. The intellectual and technical concepts contained * herein are proprietary to Troven Pty Ltd * and its suppliers and may be covered by International and Regional Patents, * patents in process, and are protected by trade secret or copyright law. * Dissemination of this information or reproduction of this material * is strictly forbidden unless prior written permission is obtained * from Troven Pty Ltd. */ export declare abstract class AbstractDataStore implements IChassisPlugin, IChassisDataStore { abstract name: any; id_field_name: string; collection_field_name: string; options: any; context: IChassisContext; constructor(); getIDField(): string; getCollectionField(): string; getStoreMiddleware(): CRUDMiddleware; install(context: IChassisContext, options: any): void; getOptions(operation: IOperation, _ctx: APIContext, _options: any): Promise; abstract healthy(req_options: any, callback: Function): void; abstract query(operation: IOperation, meta: any, req_options: any, options: any, callback: Function): void; abstract create(operation: IOperation, meta: any, req_options: any, options: any, callback: Function): void; abstract read(operation: IOperation, meta: any, req_options: any, options: any, callback: Function): void; abstract list(operation: IOperation, meta: any, req_options: any, options: any, callback: Function): void; abstract aggregate(operation: IOperation, meta: any, req_options: any, options: any, callback: Function): void; abstract update(operation: IOperation, meta: any, req_options: any, options: any, callback: Function): void; abstract delete(operation: IOperation, meta: any, req_options: any, options: any, callback: Function): void; abstract bulk(operation: IOperation, delete_first: boolean, items: any[], req_options: any, options: any, callback: Function): void; }