import { InsertParams, WriteQueryFactory } from '../factory/write-query.factory';
import { updateObject, updateParameters } from '../repositories/crud/update-repository';
import { deleteParameters } from '../repositories/crud/delete-repository';
import { DeleteFactory } from '../factory/delete.factory';
import { UpdateFactory } from '../factory/update.factory';
import { Settings } from '../misc/utils/settings';
import { Client } from 'cassandra-driver';
export declare class TransactionEntity<E> {
    private tableName;
    private batchQueries;
    private writeFactory;
    private deleteFactory;
    private updateFactory;
    private settings;
    private client;
    constructor(tableName: string, batchQueries: Array<{
        query: string;
        params: unknown[];
    }>, writeFactory: WriteQueryFactory<E>, deleteFactory: DeleteFactory<E>, updateFactory: UpdateFactory<E>, settings: Settings, client: Client);
    /**
     * Transactional version of <a href='https://typecql.com/#Insert%20-%20insert'>insert</a> method.
     * @param data object or array of objects to be inserted in database.
     * @param options additional options.
     * @link https://typecql.com/#Transactions
     */
    insert(data: InsertParams<E>[], options?: {
        returning: true;
        replace?: boolean;
        ttl?: number;
        timestamp?: number;
    }): E[];
    /**
     * Transactional version of <a href='https://typecql.com/#Insert%20-%20insert'>insert</a> method.
     * @param data object or array of objects to be inserted in database.
     * @param options additional options.
     * @link https://typecql.com/#Transactions
     */
    insert(data: InsertParams<E>, options?: {
        returning: true;
        replace?: boolean;
        ttl?: number;
        timestamp?: number;
    }): E;
    /**
     * Transactional version of <a href='https://typecql.com/#Insert%20-%20insert'>insert</a> method.
     * @param data object or array of objects to be inserted in database.
     * @param options additional options.
     * @link https://typecql.com/#Transactions
     */
    insert(data: InsertParams<E> | InsertParams<E>[], options?: {
        returning: true;
        replace?: boolean;
        ttl?: number;
        timestamp?: number;
    }): E | E[];
    /**
     * Transactional version of <a href='https://typecql.com/#Insert%20-%20insert'>insert</a> method.
     * @param data object or array of objects to be inserted in database.
     * @param options additional options.
     * @link https://typecql.com/#Transactions
     */
    insert(data: InsertParams<E> | InsertParams<E>[], options?: {
        returning: false;
        replace?: boolean;
        ttl?: number;
        timestamp?: number;
    }): void;
    /**
     * Transactional version of <a href='https://typecql.com/#Update%20-%20update'>update</a> method.
     * @param parameters - update query parameters.
     * @param partialObject object with fields as update values.
     * @link https://typecql.com/#Transactions
     */
    update(parameters: updateParameters<E>, partialObject: updateObject<E>): void;
    /**
     * Transactional version of <a href='https://typecql.com/#Delete%20-%20delete'>delete</a> method.
     * @param parameters - delete query parameters.
     * @link https://typecql.com/#Transactions
     */
    delete(parameters: deleteParameters<E>): void;
}
