import { BigNumber } from 'ethers';
import { TransactionStatuses, TransactionDirections } from '../constants.js';
import { TransactionAsset } from './transaction-asset.js';
import { TransactionBatch } from './transaction-batch.js';
import { TransactionLog } from './transaction-log.js';
import { InternalTransaction } from './internal-transaction.js';
import './transaction-log-decoded.js';
import './decoded-log-param.js';

declare class Transaction {
    hash: string;
    nonce: number;
    blockHash: string;
    blockNumber: number;
    timestamp: number;
    from: string;
    to: string;
    value: BigNumber;
    gasPrice: BigNumber;
    gasLimit: number;
    input: string;
    transactionIndex: number;
    gasUsed: number;
    logs: TransactionLog[];
    status: TransactionStatuses;
    asset: TransactionAsset;
    blockExplorerUrl: string;
    direction: TransactionDirections;
    mainTransactionDataFetched: boolean;
    internalTransactionsFetched: boolean;
    internalTransactions: InternalTransaction[];
    batch: TransactionBatch;
}

export { Transaction };
