import { FieldKeyValue, ParametersPost, ParametersQuery, ResultDelete, ResultPatchOperation, ResultPost, ResultQuery, ResultRead } from "./crudOperationsTypes";
export default interface CrudOperationsInterface {
    /**
     * Query a una entidad
     * @param entity
     * @param parameters
     */
    query<T>(entity: string, parameters?: ParametersQuery): Promise<ResultQuery<T>>;
    /**
     * Lectura de un registro de una entidad
     * @param entity
     * @param keys
     */
    read<T>(entity: string, keys: FieldKeyValue): Promise<ResultRead<T>>;
    /**
     * Inserta un registro a una entidad. Para el oDataV4 se gestiona todo: borrador, actualizacion y
     * creación.
     * @param entity
     * @param parameters
     */
    post<T, D>(entity: string, values: D, parameters?: ParametersPost): Promise<ResultPost<T>>;
    /**
     * Actualiza el registro de una entidad, solo los campos pasado por valores.
     * Solo aplica para oData V2
     * @param entity
     * @param parameters
     */
    patch<D>(entity: string, keys: FieldKeyValue, values: D): Promise<ResultPatchOperation>;
    /**
     * Borrado de un registro de la entidad
     * @param entity
     * @param keys
     */
    delete(entity: string, keys: FieldKeyValue): Promise<ResultDelete>;
}
//# sourceMappingURL=crudOperationsInterface.d.ts.map