import { Result } from 'ethers'; /** * Utility functions for Web3 decoding and data processing */ /** * Check if ABI type is a tuple */ export declare function isTupleType(abiType: string): boolean; /** * Check if ABI type is an array */ export declare function isArrayType(abiType: string): boolean; /** * Process ABI outputs and convert Result to object with named fields */ export declare function processOutputTypes(outputs: readonly any[], decoded: Result): Record; /** * Decode contract function output using ABI * @param abi - Contract ABI * @param functionName - Function name to decode * @param output - Raw output data * @returns Decoded output as object with named fields */ export declare function decoder(abi: any[], functionName: string, output: any): Record | null; /** * Convert hex string to number */ export declare function hexToNumber(hex: string): number; /** * Convert number to hex string */ export declare function numberToHex(num: number): string; /** * Validate Ethereum address */ export declare function isValidAddress(address: string): boolean; /** * Format address to checksummed version */ export declare function toChecksumAddress(address: string): string; /** * Sleep for specified milliseconds */ export declare function sleep(ms: number): Promise; /** * Retry function with exponential backoff * @param fn - Async function to retry * @param maxRetries - Maximum number of retries * @param baseDelay - Base delay in milliseconds (default: 1000) * @returns Result of the function */ export declare function retryWithBackoff(fn: () => Promise, maxRetries?: number, baseDelay?: number): Promise;