import CrudOperationsApp from "./crudOperationsApp";
import { FieldKeyValue, ParametersPost, ParametersQuery, ResultActiveDraft, ResultCreateDraft, ResultPost, ResultQuery, ResultRead } from "./crudOperationsTypes";
export default class CrudOperationsV4App extends CrudOperationsApp {
    query<T>(entity: string, parameters?: ParametersQuery): Promise<ResultQuery<T>>;
    read<T>(entity: string, keys: FieldKeyValue): Promise<ResultRead<T>>;
    post<T, D>(entity: string, values: D, parameters: ParametersPost): Promise<ResultPost<T>>;
    /**
     * Crea una nueva entrada cuando no hay registros previos. La crea como borrador.
     * @param entity
     * @param values
     * @returns
     */
    createEntry<T, D>(entity: string, values: D): Promise<ResultPost<T>>;
    /**
     * Graba los datos del borrador
     * @param entity
     * @param values
     * @param odataEtag
     * @returns
     */
    saveDraft<T, D>(entity: string, values: D, odataEtag: string): Promise<ResultPost<T>>;
    /**
     * Pasos los datos del borrador a la tabla activa
     * @param entity
     * @param keys
     * @param odataEtag
     * @returns
     */
    activateDraft<T>(entity: string, keys: FieldKeyValue, odataEtag: string): Promise<ResultActiveDraft>;
    /**
     * Pasos los datos del borrador a la tabla activa
     * @param entity
     * @param keys
     * @returns
     */
    createDraft<T>(entity: string, keys: FieldKeyValue, odataEtag: string): Promise<ResultCreateDraft>;
    /**
     * Verifica el estado de la entrada para ver si tiene borrador, o no. etc.
     * @param entity
     * @param keys
     * @returns
     */
    private checkEntryStatus;
}
//# sourceMappingURL=crudOperationsV4App.d.ts.map