import { DryRunTransactionBlockResponse, OnChainCallResponse, SignatureWithBytes, SuiClient, SuiTransactionBlockResponse, TransactionBlock } from "../types";
import { ISignerConfig, IOnChainCallOptionalParams, ISignerOptions } from "../interfaces/IChainCalls";
export declare class ChainCallsUtils<ContractsConfig> {
    suiClient: SuiClient;
    config: ContractsConfig;
    signerConfig: ISignerConfig;
    constructor(_suiClient: SuiClient, _config: ContractsConfig, options?: ISignerOptions);
    /**
     * Signs and executes the given transaction block
     * @param txb Sui transaction block
     * @returns Sui Transaction Block Response
     */
    signAndExecuteTxb(txb: TransactionBlock): Promise<SuiTransactionBlockResponse>;
    /**
     * Signs the given transaction
     * @param txb Sui transaction block
     * @returns Sui Transaction Block Response
     */
    signTransaction(txb: TransactionBlock): Promise<SignatureWithBytes>;
    /**
     * Signs and executes the given transaction block
     * @param txb Sui transaction block
     * @returns Sui Transaction Block Response
     */
    dryRunTxb(txb: TransactionBlock): Promise<DryRunTransactionBlockResponse>;
    /**
     * Handles call execution
     * @param txb The transaction block
     * @param options IOnChainCallOptionalParams
     * @returns OnChainCallResponse
     */
    handleReturn(txb: TransactionBlock, options?: IOnChainCallOptionalParams): Promise<OnChainCallResponse>;
}
