import { Hex } from "../../utils/hex";
import { TxProof } from "./tx-proof";
import { ResponseDeliverTx } from "./response-deliver-tx";
import { StdTxModel } from "./stdtx";
/**
 *
 *
 * @class Transaction
 */
export declare class Transaction {
    /**
     *
     * Creates a Transaction object using a JSON string
     * @param {string} json - JSON string.
     * @returns {Transaction} - Transaction object.
     * @memberof Transaction
     */
    static fromJSON(json: string): Transaction;
    readonly hash: string;
    readonly height: BigInt;
    readonly index: BigInt;
    readonly txResult: ResponseDeliverTx;
    readonly tx: string;
    readonly proof: TxProof;
    readonly stdTx: StdTxModel;
    /**
     * Transaction.
     * @constructor
     * @param {string} hash - Transaction hash.
     * @param {BigInt} height - Session Block Height.
     * @param {BigInt} index - Transaction index in the block.
     * @param {ResponseDeliverTx} txResult - Transaction result object.
     * @param {string} tx - Transaction hex.
     * @param {TxProof} proof - Transaction Proof.
     * @param {StdTx} stdTx - Standard transaction object.
     */
    constructor(hash: string, height: BigInt, index: BigInt, txResult: ResponseDeliverTx, tx: string, proof: TxProof, stdTx: StdTxModel);
    /**
     *
     * Creates a JSON object with the Transaction properties
     * @returns {JSON} - JSON Object.
     * @memberof Transaction
     */
    toJSON(): {
        hash: string;
        height: number;
        index: number;
        proof: {
            data: string | null;
            proof: {
                aunts: Hex[] | null;
                index: number;
                leaf_hash: Hex | null;
                total: number;
            };
            root_hash: string;
        };
        tx: string;
        tx_result: {
            code: number;
            codespace: string;
            data: string[];
            log: string;
            info: string;
            recipient: string;
            signer: string;
            messageType: string;
            events: object[];
        };
        stdTx: {
            entropy: number;
            fee: import("./stdtx").Fee;
            memo: string;
            msg: any;
            signature: import("./stdtx").Signature;
        };
    };
    /**
     *
     * Check if the Transaction object is valid
     * @returns {boolean} - True or false.
     * @memberof Transaction
     */
    isValid(): boolean;
}
