import { Satoshi, Script, Hash } from "./types";
export default class Transaction {
    hash: Hash;
    fee: Satoshi;
    time: Date;
    blockHeight: number;
    txInputs: TransactionInput[];
    txOutputs: TransactionOutput[];
    constructor(hash: Hash, time: Satoshi, fee: Satoshi, height: number, txInputs?: TransactionInput[], txOutputs?: TransactionOutput[]);
    static constructFromObj({ hash, time, fee, block_height, inputs, out }: any): Transaction;
}
export declare class TransactionInput {
    previousTxOutput: TransactionOutput;
    scriptSig: Script;
    witness?: Hash;
    constructor(scriptSig: Script, prevTxOut?: TransactionOutput, witness?: Hash);
    static constructFromObj({ script, prev_out, witness }: {
        script: any;
        prev_out: any;
        witness: any;
    }): TransactionInput;
}
export declare class TransactionOutput {
    address: Hash;
    amount: Satoshi;
    scriptPubKey: Script;
    spent: boolean;
    constructor(amount: Satoshi, scriptPubKey: Script, address: Hash, spent: boolean);
    static constructFromObj({ value, script, addr, spent }: {
        value: any;
        script: any;
        addr: any;
        spent: any;
    }): TransactionOutput;
}
