import { SessionHeader } from "../input";
import { EvidenceType } from "../evidence-type";
export interface HashSum {
    hash: string;
    sum: BigInt;
}
/**
 *
 *
 * @class MsgClaim
 */
export declare class MsgClaim {
    /**
     *
     * Creates a RelayMeta object using a JSON string
     * @param {string} json - JSON string.
     * @returns {MsgClaim} - MsgClaim object.
     * @memberof MsgClaim
     */
    static fromJSON(json: string): MsgClaim;
    readonly header: SessionHeader;
    readonly merkleRoot: HashSum;
    readonly totalProofs: BigInt;
    readonly fromAddress: string;
    readonly evidenceType: EvidenceType;
    readonly expirationHeight: BigInt;
    /**
     * Challenge Response.
     * @constructor
     * @param {string} response - response json.
     */
    constructor(header: SessionHeader, merkleRoot: HashSum, totalProofs: BigInt, fromAddress: string, evidenceType: EvidenceType, expirationHeight: BigInt);
    /**
     *
     * Creates a JSON object with the MsgClaim properties
     * @returns {JSON} - JSON Object.
     * @memberof MsgClaim
     */
    toJSON(): {
        header: {
            app_public_key: string;
            chain: string;
            session_height: number;
        };
        merkle_root: HashSum;
        total_proofs: number;
        from_address: string;
        evidence_type: EvidenceType;
        expiration_height: number;
    };
    /**
     *
     * Check if the MsgClaim object is valid
     * @returns {boolean} - True or false.
     * @memberof MsgClaim
     */
    isValid(): boolean;
}
