import { type PublicClient, type Address, type Hex } from 'viem'; export declare enum TransactionType { tokenMethodApprove = "approve", tokenMethodSetApprovalForAll = "setApprovalForAll", tokenMethodTransfer = "transfer", tokenMethodTransferFrom = "transferFrom", tokenMethodIncreaseAllowance = "increaseAllowance", tokenMethodSafeTransferFrom = "safeTransferFrom", contractInteraction = "contractInteraction", deployContract = "deployContract", simpleSend = "simpleSend", cancel = "cancel", retry = "retry", swap = "swap" } export declare enum AssetType { native = "NATIVE", token = "TOKEN", NFT = "NFT", unknown = "UNKNOWN" } export declare enum TokenStandard { ERC20 = "ERC20", ERC721 = "ERC721", ERC1155 = "ERC1155", none = "none" } export interface TransactionParams { from: Address; to?: Address; value?: bigint | string; data?: Hex; gas?: bigint | string; gasPrice?: bigint | string; maxFeePerGas?: bigint | string; maxPriorityFeePerGas?: bigint | string; nonce?: number; } export interface TransactionMeta { type?: TransactionType; txParams: TransactionParams; dappSuggestedGasFees?: { gasPrice?: bigint | string; maxFeePerGas?: bigint | string; maxPriorityFeePerGas?: bigint | string; }; } export interface InferTransactionTypeResult { type: TransactionType; contractCode: Hex | null; } export interface ParsedApprovalData { amountOrTokenId?: bigint; isApproveAll?: boolean; isRevokeAll?: boolean; name: string; tokenAddress?: Address; spender?: Address; } export interface TokenDetails { decimals?: number; balance?: bigint; symbol?: string; standard?: TokenStandard; } export declare function isEIP1559Transaction(transactionMeta: TransactionMeta): boolean; export declare function isLegacyTransaction(transactionMeta: TransactionMeta): boolean; export declare function txParamsAreDappSuggested(transactionMeta: TransactionMeta): boolean; export declare function parseStandardTokenTransactionData(data: Hex): { args: readonly []; functionName: "symbol"; } | { args: readonly [account: `0x${string}`]; functionName: "balanceOf"; } | { args: readonly []; functionName: "decimals"; } | { args: readonly [to: `0x${string}`, amount: bigint]; functionName: "transfer"; } | { args: readonly [spender: `0x${string}`, amount: bigint] | readonly [to: `0x${string}`, tokenId: bigint] | readonly [token: `0x${string}`, spender: `0x${string}`, amount: bigint, expiration: number]; functionName: "approve"; } | { args: readonly [operator: `0x${string}`, approved: boolean]; functionName: "setApprovalForAll"; } | { args: readonly [from: `0x${string}`, to: `0x${string}`, tokenId: bigint] | readonly [from: `0x${string}`, to: `0x${string}`, amount: bigint]; functionName: "transferFrom"; } | { args: readonly [spender: `0x${string}`, bigint]; functionName: "increaseAllowance"; } | { args: readonly [from: `0x${string}`, to: `0x${string}`, tokenId: bigint] | readonly [from: `0x${string}`, to: `0x${string}`, tokenId: bigint, data: `0x${string}`] | readonly [from: `0x${string}`, to: `0x${string}`, id: bigint, amount: bigint, data: `0x${string}`]; functionName: "safeTransferFrom"; } | { args: readonly [spender: `0x${string}`, bigint]; functionName: "decreaseAllowance"; } | { args: readonly [interfaceId: `0x${string}`]; functionName: "supportsInterface"; } | { args: readonly [from: `0x${string}`, to: `0x${string}`, ids: readonly bigint[], amounts: readonly bigint[], data: `0x${string}`]; functionName: "safeBatchTransferFrom"; } | undefined; export declare function hasTransactionData(transactionData?: Hex): boolean; export declare function parseApprovalTransactionData(data: Hex): ParsedApprovalData | undefined; export declare function readAddressAsContract(client: PublicClient, address: Address): Promise<{ isContractAddress: boolean; contractCode: Hex | null; }>; export declare function getTokenStandard(client: PublicClient, address: Address): Promise; export declare function getTokenStandardAndDetails(client: PublicClient, address: Address, holderAddress?: Address): Promise; export declare function determineTransactionType(txParams: TransactionParams, client: PublicClient): Promise; export declare function determineTransactionAssetType(txMeta: TransactionMeta, client: PublicClient): Promise<{ assetType: AssetType; tokenStandard: TokenStandard; }>; export declare function parseTypedDataMessage(dataToParse: object | string | number | boolean): any; export declare function isEqualCaseInsensitive(str1: string, str2: string): boolean;