/**
 *
 * @param {BinaryTreeFactory} treeFactory
 * @param {MerkleProofTreeFactory} proofFactory
 */
export function MerkleHashSummaryFactory(treeFactory: BinaryTreeFactory, proofFactory: MerkleProofTreeFactory): void;
export class MerkleHashSummaryFactory {
    /**
     *
     * @param {BinaryTreeFactory} treeFactory
     * @param {MerkleProofTreeFactory} proofFactory
     */
    constructor(treeFactory: BinaryTreeFactory, proofFactory: MerkleProofTreeFactory);
    treeFactory: BinaryTreeFactory;
    proofFactory: MerkleProofTreeFactory;
    /**
     * @param {any} value
     * @param {MerkleHashCalculator} calculator
     */
    calculateMerkleRoot(value: any, calculator: MerkleHashCalculator): MerkleHashSummary;
    /**
     * @param {MerkleProofTree} value
     * @param {MerkleHashCalculator} calculator
     */
    calculateMerkleTreeRoot(tree: any, calculator: MerkleHashCalculator): MerkleHashSummary;
    /**
     * @param {MerkleProofTree} proofTree
     * @param {MerkleHashCalculator} calculator
     */
    calculateMerkleRootOfTree(proofTree: MerkleProofTree, calculator: MerkleHashCalculator): MerkleHashSummary;
    /**
     * @param {MerkleProofElement} currentElement
     * @param {MerkleHashCalculator} calculator
     */
    calculateMerkleRootInternal(currentElement: typeof MerkleProofElement, calculator: MerkleHashCalculator): any;
    /**
     * @param {any} value
     * @param {MerkleHashCalculator} calculator
     */
    buildProofTree(value: any, calculator: MerkleHashCalculator): MerkleProofTree;
}
import BinaryTreeFactory_1 = require("../binarytreefactory");
import BinaryTreeFactory = BinaryTreeFactory_1.BinaryTreeFactory;
import MerkleProofTreeFactory_1 = require("./merkleprooftreefactory");
import MerkleProofTreeFactory = MerkleProofTreeFactory_1.MerkleProofTreeFactory;
import MerkleHashCalculator_1 = require("../merklehashcalculator");
import MerkleHashCalculator = MerkleHashCalculator_1.MerkleHashCalculator;
import MerkleHashSummary_1 = require("./merklehashcarrier");
import MerkleHashSummary = MerkleHashSummary_1.MerkleHashSummary;
import MerkleProofTree_1 = require("./merkleprooftree");
import MerkleProofTree = MerkleProofTree_1.MerkleProofTree;
import MerkleProofElement_1 = require("./merkleprooftree");
import MerkleProofElement = MerkleProofElement_1.MerkleProofElement;
