import { TransactionModel } from "../models/TransactionModel";
import { RulesController } from "./rules.controller";
import { QueryModel } from "../models/QueryModel";
import { UpdateModel } from "../models/UpdateOperation";
import { HttpClientController } from "./http-client.controller";
import { AuthController } from "./auth.controller";
export declare class BulkController {
    private readonly appName;
    private readonly httpClientController;
    private readonly rulesController;
    private readonly authController;
    private transactionRequests;
    constructor(appName: string, httpClientController: HttpClientController, rulesController: RulesController, authController: AuthController);
    commit(options?: {
        before: (transactionRequests: TransactionModel[]) => Promise<TransactionModel[]>;
        after?: () => Promise<void>;
        useMasterKey?: boolean;
    }): Promise<any>;
    create(domain: string, data: any | any[]): BulkController;
    delete(domain: string, payload: {
        query: QueryModel;
    }): BulkController;
    update(domain: string, payload: {
        query: QueryModel;
        update: UpdateModel;
    } | {
        query: QueryModel;
        update: UpdateModel;
    }[]): BulkController;
    static _extractResultFromServer(data: any): any;
}
