import type { Deployments } from '../../contracts/deploy/Deployments'; import { EoAccount } from '../../models/TAccount'; import { ITxWriterAgent } from './TxWriterAccountAgents'; import { ITxWriterEmitter, ITxWriterEvents, ITxWriterTransaction, TxWriter } from '../TxWriter'; import { class_Dfr, class_EventEmitter } from 'atma-utils'; import { TEth } from '../../models/TEth'; export declare class BatchAgent implements ITxWriterAgent { options?: { ignoreContractCreation?: boolean; }; transactions: MockTxWriter[]; constructor(options?: { ignoreContractCreation?: boolean; }); enable(): this; disable(): this; getTxData(): (Pick & { sender: TEth.EoAccount; account: TEth.IAccount; })[]; /** * Called by TxWriter for regular transactions. Prevents on-chain submission and keeps the transaction in the batch. */ process(senderMix: string | EoAccount, account: TEth.IAccount, outerWriter: TxWriter): Promise; /** * Executes the queued transactions. * * By default, duplicate transactions are skipped. If the account is Safe or Timelock, * prepares the corresponding calldata and submits it as a batch transaction. * * @param options.includeDuplicates Include duplicate transactions in the execution batch. */ execute(options?: { includeDuplicates?: boolean; }): Promise; /** * Format all queued transactions for display. */ print(data?: { deployments: Deployments[]; }): Promise; private executeGroup; private executeBatchSafe; private executeBatchTimelock; private getTitle; } export declare class MockTxWriter extends class_EventEmitter implements ITxWriterEmitter { sender: TEth.EoAccount; account: TEth.IAccount; outerWriter: TxWriter; onSent: class_Dfr; onCompleted: class_Dfr; receipt: TEth.TxReceipt; tx: ITxWriterTransaction; constructor(sender: TEth.EoAccount, account: TEth.IAccount, outerWriter: TxWriter); process(): Promise; }