import { AbstractController } from './abstract.controller'; import { Logger } from '../../common/services/logger.service'; import { AbstractModel } from '../../common/models/model'; import { Response } from './response'; import { Request } from './request'; import { AbstractStore } from '../../common/stores/store'; import { ValidatorOptions } from '../../common/validation'; /** * Provides resource controller that all controllers that interact RESTfully with ModelStores * should extend from. */ export declare abstract class ResourceController extends AbstractController { protected modelStore: AbstractStore; constructor(logger: Logger, modelStore: AbstractStore); /** * Get one entity * @param request * @param response * @returns {any} */ getOne(request: Request, response: Response): Promise; /** * Get many entities * @param request * @param response * @returns {any} */ getMany(request: Request, response: Response): Promise; /** * Process and persist an entity * @param request * @param response */ putOne(request: Request, response: Response): Promise; /** * Process and update entity, skipping validation of any missing properties * @param request * @param response * @returns {Promise} */ patchOne(request: Request, response: Response): Promise; /** * Delete the payload model from the model store * @param request * @param response * @returns {Promise} */ deleteOne(request: Request, response: Response): Promise; /** * Persist the request payload with the model store with optional validator options * @param request * @param response * @param validatorOptions * @param checkExists * @returns {Promise} */ protected savePayload(request: Request, response: Response, checkExists?: boolean, validatorOptions?: ValidatorOptions): Promise; }