import { LogonData, ResultServiceBindingInfo } from "navidev-adt-api";
import { FieldKeyValue, ParametersPost, ParametersQuery, ResultConnect, ResultDelete, ResultPatch, ResultPost, ResultQuery, ResultRead } from "./crudOperationsTypes";
import AdtExceptionController from "navidev-adt-api/dist/shared/exceptions/adtExceptionController";
export * from "./crudOperationsTypes";
export declare class CrudOperations {
    private connectionController;
    private logonData;
    private instanceApp?;
    protected adtExceptionController: AdtExceptionController;
    constructor(logonData: LogonData);
    /**
     * Conexión a un servicio
     * @param serviceName
     * @returns
     */
    connect(serviceName: string): Promise<ResultConnect>;
    /**
     * Query a una entitidad
     * @param entity
     * @param Parameters
     */
    query<T>(entity: string, parameters?: ParametersQuery): Promise<ResultQuery<T>>;
    /**
     * Lectura de un registro de una entidad
     * @param entity
     * @param keys
     * @returns
     */
    read<T>(entity: string, keys: FieldKeyValue): Promise<ResultRead<T>>;
    post<T, D>(entity: string, values: D, parameters?: ParametersPost): Promise<ResultPost<T>>;
    patch<T, D>(entity: string, keys: FieldKeyValue, values: D): Promise<ResultPatch<T>>;
    delete(entity: string, keys: FieldKeyValue): Promise<ResultDelete>;
    /**
     * Devuelve la instancia de la aplicación encargada de las operaciones CRUD
     * @param serviceName
     */
    private getInstanceApp;
    /**
     * Lee los datos del binding del servicio
     * @param connectionController
     * @param serviceName
     * @returns
     */
    loadBindingInfo(serviceName: string): Promise<ResultServiceBindingInfo>;
}
//# sourceMappingURL=crudOperations.d.ts.map