import { RuntimeError } from '../utils/error';
import { DataSize } from './datatypes';
import { AbiInput, AbiItemDefinition } from './item';
import { Value } from './wasm';
export declare class DecodeError extends RuntimeError {
}
export interface DecodedParameter {
    name?: string;
    type: string;
    value: Value | DecodedStruct;
}
export interface DecodedFunctionCall {
    name: string;
    signature: string;
    params: DecodedParameter[];
    args?: {
        [name: string]: Value | DecodedStruct;
    };
}
export declare function getInputSize(abi: AbiItemDefinition): DataSize;
export declare type DecodedStruct = {
    [k: string]: Value | DecodedStruct;
} | DecodedStruct[];
export declare function reconcileStructFromDecodedTuple(decodedTuple: Value[], inputDef: AbiInput): DecodedStruct | null;
export declare const reconcileStructs: (decodedValues: Value[], inputDefs: AbiInput[]) => Array<Value | DecodedStruct>;
export declare function decodeFunctionCall(data: string, abi: AbiItemDefinition, signature: string, anonymous: boolean, shouldReconcileStructs: boolean): DecodedFunctionCall;
export declare function decodeBestMatchingFunctionCall(data: string, abis: AbiItemDefinition[], anonymous: boolean, reconcileStructShapeFromTuples: boolean): DecodedFunctionCall;
export declare function decodeLogEvent(data: string, topics: string[], abi: AbiItemDefinition, signature: string, anonymous: boolean, shouldReconcileStructs?: boolean): DecodedFunctionCall;
export declare function decodeBestMatchingLogEvent(data: string, topics: string[], abis: AbiItemDefinition[], anonymous: boolean, reconcileStructShapeFromTuples: boolean): DecodedFunctionCall;
