///
import { Web3ProviderEngine } from '@0x/subproviders';
import { AbiDecoder, BigNumber, DecodedCalldata, RevertError } from '@0x/utils';
import { Web3Wrapper } from '@0x/web3-wrapper';
import { CallData, DecodedLogArgs, LogWithDecodedArgs, TransactionReceipt, TransactionReceiptWithDecodedLogs } from 'ethereum-types';
import { ExplainedTransactionOutput } from './types';
interface ExplainedTransaction {
success: boolean;
txHash: string;
decodedInput: DecodedCalldata;
decodedLogs?: Array>;
revertReason: RevertError | undefined;
gasUsed?: number;
value?: BigNumber;
txReceipt: TransactionReceipt;
blockNumber: number;
}
export declare const txExplainerUtils: {
explainTransactionAsync(web3Wrapper: Web3Wrapper, txHash: string, abiDecoder: AbiDecoder): Promise;
decodeRevertReasonAsync(web3Wrapper: Web3Wrapper, callData: CallData, blockNumber: number): Promise;
decodeLogsAsync(web3Wrapper: Web3Wrapper, txReceipt: TransactionReceiptWithDecodedLogs): Promise[]>;
};
export declare class TxExplainer {
private _web3Wrapper;
private _contractWrappers;
constructor(provider: Web3ProviderEngine, networkId: number);
explainTransactionAsync(txHash: string): Promise;
}
export {};