import { Data, Address, LogTopic } from './types'; export declare const T: { address: "address"; addressArray: "address[]"; uint16Array: "uint16[]"; uint256Array: "uint256[]"; stringArray: "string[]"; string: "string"; bool: "bool"; uint8: "uint8"; uint16: "uint16"; uint32: "uint32"; uint48: "uint48"; uint64: "uint64"; uint128: "uint128"; uint256: "uint256"; int8: "int8"; int16: "int16"; int32: "int32"; int48: "int48"; int64: "int64"; int128: "int128"; int256: "int256"; bytes32: "bytes32"; uint: "uint256"; Array(x: X): `${X}[]`; }; declare function toBigInt(val: string): bigint; declare function decodeIntArray(val: string[]): bigint[]; declare const Decoder: { string(val: string): string; address(val: string): Address; 'uint8[]': typeof decodeIntArray; 'uint16[]': typeof decodeIntArray; 'uint32[]': typeof decodeIntArray; 'uint48[]': typeof decodeIntArray; 'uint64[]': typeof decodeIntArray; 'uint128[]': typeof decodeIntArray; 'uint256[]': typeof decodeIntArray; 'address[]'(val: string[]): Address[]; 'string[]'(val: string[]): string[]; uint8: typeof toBigInt; uint16: typeof toBigInt; uint32: typeof toBigInt; uint48: typeof toBigInt; uint64: typeof toBigInt; uint128: typeof toBigInt; uint256: typeof toBigInt; bytes32: typeof toBigInt; bool(val: boolean): boolean; }; export declare type AbiType = keyof typeof Decoder; export declare type DecodedType = ReturnType; export declare type DecodedTuple = { [k in keyof TupleType]: TupleType[k] extends AbiType ? DecodedType : never; }; export declare function abiDecode(types: T, data: Data): any[]; export declare function decodeObject(spec: Spec, data: Data): DecodedTuple; export declare function encodeObject(spec: Spec, value: DecodedTuple): Data; export declare function encodeTopic(t: T, v: DecodedType): LogTopic; export {};