import { ServiceBindingInfo } from "navidev-adt-api";
import AdtExceptionController from "navidev-adt-api/dist/shared/exceptions/adtExceptionController";
import CrudOperationsInterface from "./crudOperationsInterface";
import { FieldKeyValue, ParametersPost, ParametersQuery, ResultDelete, ResultPatchOperation, ResultPost, ResultQuery, ResultRead, ResultToken } from "./crudOperationsTypes";
import { AdtConnection } from "../adtConnection/adtConnection";
import { Entity, MetadataContent } from "../metadata/metadataTypes";
export default class CrudOperationsApp implements CrudOperationsInterface {
    protected adtExceptionController: AdtExceptionController;
    protected connectionController: AdtConnection;
    protected serviceBindingInfo: ServiceBindingInfo;
    protected serviceName: string;
    protected metadataInfo: MetadataContent;
    protected entityInfo?: Entity;
    constructor(connectionController: AdtConnection, serviceBindingInfo: ServiceBindingInfo, serviceName: string, metadataInfo: MetadataContent);
    delete(entity: string, keys: FieldKeyValue): Promise<ResultDelete>;
    patch<D>(entity: string, keys: FieldKeyValue, values: D): Promise<ResultPatchOperation>;
    read<T>(entity: string, keys: FieldKeyValue): Promise<ResultRead<T>>;
    query<T>(entity: string, parameters?: ParametersQuery): Promise<ResultQuery<T>>;
    post<T, D>(entity: string, values: D, parameters: ParametersPost): Promise<ResultPost<T>>;
    /**
     * Obtención del x-csrf-token para operaciones de actualización
     * @param entity
     */
    getCsrfToken(entity: string): Promise<ResultToken>;
    /**
     * Leer información de la entidad pasada por parámetro
     * @param entity
     */
    protected readEntityInfo(entity: string): void;
}
//# sourceMappingURL=crudOperationsApp.d.ts.map