import { ParamType } from 'ethers'; /** * ABI function signature information */ export interface AbiFunctionInfo { /** Function name */ name: string; /** Function signature (e.g., "processTask(uint256,bytes32,address)") */ signature: string; /** Input parameter types */ inputs: readonly ParamType[]; /** Output parameter types */ outputs: readonly ParamType[]; /** Function selector (first 4 bytes of keccak256 hash) */ selector: string; } /** * ABI codec for encoding/decoding Solidity function calls */ export declare class AbiCodec { private abiCoder; private contractInterface; private functionInfo; constructor(abi: any[]); /** * Build function information from ABI */ private buildFunctionInfo; /** * Get function information by name */ getFunctionInfo(functionName: string): AbiFunctionInfo | undefined; /** * Get all available functions */ getAllFunctions(): AbiFunctionInfo[]; /** * Decode function call data */ decodeFunctionCall(functionName: string, data: Uint8Array): any; /** * Encode function call data */ encodeFunctionCall(functionName: string, params: any[]): Uint8Array; /** * Decode function result */ decodeFunctionResult(functionName: string, data: Uint8Array): any; /** * Encode function result */ encodeFunctionResult(functionName: string, result: any): Uint8Array; /** * Detect if data looks like ABI-encoded function call */ static isAbiEncoded(data: Uint8Array): boolean; /** * Try to detect function from encoded data */ detectFunction(data: Uint8Array): string | null; } /** * Utility functions for common Solidity types */ export declare class SolidityTypeUtils { /** * Convert JavaScript value to Solidity type */ static toSolidityType(value: any, solidityType: string): any; /** * Convert Solidity type to JavaScript value */ static fromSolidityType(value: any, solidityType: string): any; /** * Validate value against Solidity type */ static validateType(value: any, solidityType: string): boolean; } /** * Auto-detect payload format and decode accordingly */ export declare class PayloadAutoDecoder { /** * Attempt to decode payload using multiple strategies */ static decode(payload: Uint8Array): { format: 'abi' | 'json' | 'string' | 'raw'; data: any; confidence: number; }; } //# sourceMappingURL=abiUtils.d.ts.map