import type { FetchGasFeeEstimateOptions, GasFeeState } from '@metamask/gas-fee-controller'; import type { Hex } from '@metamask/utils'; import type { WritableDraft } from 'immer/dist/internal.js'; import type { PendingTransactionTracker } from '../helpers/PendingTransactionTracker.js'; import type { GetSimulationConfig, TransactionController, TransactionControllerMessenger, TransactionControllerState, TransactionMeta } from '../index.js'; import type { PublishBatchHook, TransactionBatchRequest, IsAtomicBatchSupportedResult } from '../types.js'; import type { TransactionBatchResult } from '../types.js'; type UpdateStateCallback = (callback: (state: WritableDraft) => void | TransactionControllerState) => void; type AddTransactionBatchRequest = { addTransaction: TransactionController['addTransaction']; estimateGas: TransactionController['estimateGas']; getGasFeeEstimates: (options: FetchGasFeeEstimateOptions) => Promise; getInternalAccounts: () => Hex[]; getPendingTransactionTracker: (networkClientId: string) => PendingTransactionTracker; getSimulationConfig: GetSimulationConfig; getTransaction: (id: string) => TransactionMeta; isSimulationEnabled: (transactionMeta?: TransactionMeta) => boolean; messenger: TransactionControllerMessenger; publishBatchHook?: PublishBatchHook; publishTransaction: (transactionMeta: TransactionMeta) => Promise; publicKeyEIP7702?: Hex; request: TransactionBatchRequest; requestId?: string; signTransaction: (transactionMeta: TransactionMeta) => Promise; update: UpdateStateCallback; updateTransaction: (options: { transactionId: string; }, callback: (transactionMeta: TransactionMeta) => void) => void; }; type IsAtomicBatchSupportedRequestInternal = { address: Hex; chainIds?: Hex[]; messenger: TransactionControllerMessenger; publicKeyEIP7702?: Hex; }; export declare const ERROR_MESSAGE_NO_UPGRADE_CONTRACT = "Upgrade contract address not found"; /** * Add a batch transaction. * * @param request - The request object including the user request and necessary callbacks. * @returns The batch result object including the batch ID. */ export declare function addTransactionBatch(request: AddTransactionBatchRequest): Promise; /** * Determine which chains support atomic batch transactions for the given account. * * @param request - The request object including the account address and necessary callbacks. * @returns The chain IDs that support atomic batch transactions. */ export declare function isAtomicBatchSupported(request: IsAtomicBatchSupportedRequestInternal): Promise; /** * Generate a transaction batch ID. * * @returns A unique batch ID as a hexadecimal string. */ export declare function generateBatchId(): Hex; export {}; //# sourceMappingURL=batch.d.ts.map