import { ethers } from 'ethers'; export interface Transaction { to: string; value?: ethers.BigNumberish; data?: string; gasLimit?: ethers.BigNumberish; delegateCall?: boolean; revertOnError?: boolean; } export interface SimulatedTransaction extends Transaction { succeeded: boolean; executed: boolean; gasUsed: number; gasLimit: number; result?: string; reason?: string; } export interface TransactionEncoded { delegateCall: boolean; revertOnError: boolean; gasLimit: ethers.BigNumberish; target: string; value: ethers.BigNumberish; data: string; } export type Transactionish = ethers.TransactionRequest | ethers.TransactionRequest[] | Transaction | Transaction[]; export interface TransactionResponse extends ethers.TransactionResponse { receipt?: R; } export type TransactionBundle = { entrypoint: string; transactions: Transaction[]; nonce?: ethers.BigNumberish; }; export type IntendedTransactionBundle = TransactionBundle & { chainId: ethers.BigNumberish; intent: { id: string; wallet: string; }; }; export type SignedTransactionBundle = IntendedTransactionBundle & { signature: string; nonce: ethers.BigNumberish; }; export type RelayReadyTransactionBundle = SignedTransactionBundle | IntendedTransactionBundle; export declare const MetaTransactionsType = "tuple(\n bool delegateCall,\n bool revertOnError,\n uint256 gasLimit,\n address target,\n uint256 value,\n bytes data\n)[]"; export declare function intendTransactionBundle(bundle: TransactionBundle, wallet: string, chainId: ethers.BigNumberish, id: string): IntendedTransactionBundle; export declare function intendedTransactionID(bundle: IntendedTransactionBundle): string; export declare function unpackMetaTransactionsData(data: ethers.BytesLike): [bigint, TransactionEncoded[]]; export declare function packMetaTransactionsData(nonce: ethers.BigNumberish, txs: Transaction[]): string; export declare function digestOfTransactions(nonce: ethers.BigNumberish, txs: Transaction[]): string; export declare function subdigestOfTransactions(address: string, chainId: ethers.BigNumberish, nonce: ethers.BigNumberish, txs: Transaction[]): string; export declare function subdigestOfGuestModuleTransactions(guestModule: string, chainId: ethers.BigNumberish, txs: Transaction[]): string; export declare function toSequenceTransactions(wallet: string, txs: ethers.TransactionRequest[]): { nonce?: ethers.BigNumberish; transaction: Transaction; }[]; export declare function toSequenceTransaction(wallet: string, tx: ethers.TransactionRequest): { nonce?: ethers.BigNumberish; transaction: Transaction; }; export declare function isSequenceTransaction(tx: any): tx is Transaction; export declare function hasSequenceTransactions(txs: any[]): txs is Transaction[]; export declare function sequenceTxAbiEncode(txs: Transaction[]): TransactionEncoded[]; export declare function fromTxAbiEncode(txs: TransactionEncoded[]): Transaction[]; export declare function encodeNonce(space: ethers.BigNumberish, nonce: ethers.BigNumberish): bigint; export declare function decodeNonce(nonce: ethers.BigNumberish): [bigint, bigint]; export declare function fromTransactionish(wallet: string, transaction: Transactionish): Transaction[]; export declare function isTransactionBundle(cand: any): cand is TransactionBundle; export declare function isSignedTransactionBundle(cand: any): cand is SignedTransactionBundle; export declare function encodeBundleExecData(bundle: TransactionBundle): string; export declare const selfExecuteSelector = "0x61c2926c"; export declare const selfExecuteAbi = "tuple(\n bool delegateCall,\n bool revertOnError,\n uint256 gasLimit,\n address target,\n uint256 value,\n bytes data\n)[]"; export declare const unwind: (wallet: string, transactions: Transaction[]) => Transaction[];