import { HttpBody } from './HttpBody'; import { Model } from './Model'; import { ID, TAG, Resp } from '../../types'; export declare abstract class Resource extends Model { /** * API URI endpoint */ abstract readonly $endpoint: string; /** * ID of entity */ abstract $id: ID; /** * Tag of entity */ $tag: TAG; /** * Finds and return a entity from WebServer * @param id entity ID */ find(id: ID): Promise>; /** * Finds and return a entity from WebServer by query * @param query */ findByQuery(query: any): Promise>; /** * Saves this entity and post it into WebServer * @param modelResp */ save(modelResp?: HttpBody): Promise>; /** * Updates this entity and post it into WebServer * @param modelResp */ update(modelResp?: HttpBody): Promise>; /** * Removes a entity from WebServer * @param modelResp */ remove(modelResp?: HttpBody): Promise>; /** * Normalizes what will be showed as entity or list */ scheme(): any; /** * Normalizes what will be showed as entity or list when a CSV is generated */ csvScheme(): any; /** * Validate and save */ validateAndSave(): Promise>; /** * Validate and update */ validateAndUpdate(): Promise>; }