import { BlockHeader } from "./block-header";
import { Commit } from "./commit";
/**
 *
 *
 * @class Block
 */
export declare class Block {
    /**
     *
     * Creates a Block object using a JSON string
     * @param {String} json - JSON string.
     * @returns {Block} - Block object.
     * @memberof Block
     */
    static fromJSON(json: string): Block;
    readonly header: BlockHeader;
    readonly data: string;
    readonly evidence: string;
    readonly lastCommit: Commit;
    /**
     * Block
     * @constructor
     * @param {BlockHeader} header - Block header.
     * @param {string} data - Data hash.
     * @param {string} evidence - Evidence hash.
     * @param {Commit} lastCommit - Last commit.
     */
    constructor(header: BlockHeader, data: string, evidence: string, lastCommit: Commit);
    /**
     *
     * Creates a JSON object with the Block properties
     * @returns {JSON} - JSON Object.
     * @memberof Block
     */
    toJSON(): {
        data: string;
        evidence: string;
        header: {
            app_hash: string;
            chain_id: string;
            consensus_hash: string;
            data_hash: string;
            evidence_hash: string;
            height: number;
            last_block_id: {
                hash: string;
                parts: {
                    hash: string;
                    total: number;
                };
            };
            last_commit_hash: string;
            last_results_hash: string;
            next_validators_hash: string;
            num_txs: number;
            proposer_address: string;
            time: string;
            total_txs: number;
            validators_hash: string;
        };
        last_commit: {
            block_id: {
                hash: string;
                parts: {
                    hash: string;
                    total: number;
                };
            };
            precommits: object[];
        };
    };
    /**
     *
     * Check if the Block object is valid
     * @returns {boolean} - True or false.
     * @memberof Block
     */
    isValid(): boolean;
}
