import type { bcs } from "../../bcs/index.js";
import type { WowClient, WowTransactionBlockResponseOptions } from "../../client/index.js";
import type { Signer } from "../../cryptography/keypair.js";
import type { ObjectCacheOptions } from "../ObjectCache.js";
import { Transaction } from "../Transaction.js";
export declare class SerialTransactionExecutor {
    #private;
    constructor({ signer, defaultGasBudget, ...options }: Omit<ObjectCacheOptions, "address"> & {
        client: WowClient;
        signer: Signer;
        defaultGasBudget?: bigint;
    });
    applyEffects(effects: typeof bcs.TransactionEffects.$inferType): Promise<void>;
    buildTransaction(transaction: Transaction): Promise<Uint8Array<ArrayBuffer>>;
    resetCache(): Promise<void>;
    waitForLastTransaction(): Promise<void>;
    executeTransaction(transaction: Transaction | Uint8Array, options?: WowTransactionBlockResponseOptions, additionalSignatures?: string[]): Promise<{
        digest: string;
        effects: string;
        data: import("../../index.js").WowTransactionBlockResponse;
    }>;
}
export declare function getGasCoinFromEffects(effects: typeof bcs.TransactionEffects.$inferType): {
    ref: {
        objectId: any;
        digest: any;
        version: any;
    };
    owner: any;
};
