/**
 *
 */
export function MerkleProofTreeFactory(): void;
export class MerkleProofTreeFactory {
    /**
     * @param {BinaryTree} originalTree
     */
    buildFromBinaryTree(originalTree: BinaryTree, calculator: any): MerkleProofTree;
    /**
     * @param {BinaryTreeElement} elem
     * @param {*} calculator
     */
    buildFromBinaryTreeInternal(elem: BinaryTreeElement, calculator: any): any;
    /**
     * @param {Node} node
     */
    convertNode(node: Node, calculator: any): any;
    /**
     * @param {ArrayHeadNode} node
     */
    extractSearchablePathElement(node: ArrayHeadNode): any;
    /**
     * @param {Node} node
     * @param {MerkleProofElement} left
     * @param {MerkleProofElement} right
     */
    buildNodeOfCorrectType(node: Node, left: typeof MerkleProofElement, right: typeof MerkleProofElement): ProofNodeSimple | ProofNodeArrayHead | ProofNodeDictHead;
}
import BinaryTree_1 = require("../binarytree");
import BinaryTree = BinaryTree_1.BinaryTree;
import MerkleProofTree_1 = require("./merkleprooftree");
import MerkleProofTree = MerkleProofTree_1.MerkleProofTree;
import BinaryTreeElement_1 = require("../binarytree");
import BinaryTreeElement = BinaryTreeElement_1.BinaryTreeElement;
import Node_1 = require("../binarytree");
import Node = Node_1.Node;
import ArrayHeadNode_1 = require("../binarytree");
import ArrayHeadNode = ArrayHeadNode_1.ArrayHeadNode;
import MerkleProofElement_1 = require("./merkleprooftree");
import MerkleProofElement = MerkleProofElement_1.MerkleProofElement;
import ProofNodeSimple_1 = require("./merkleprooftree");
import ProofNodeSimple = ProofNodeSimple_1.ProofNodeSimple;
import ProofNodeArrayHead_1 = require("./merkleprooftree");
import ProofNodeArrayHead = ProofNodeArrayHead_1.ProofNodeArrayHead;
import ProofNodeDictHead_1 = require("./merkleprooftree");
import ProofNodeDictHead = ProofNodeDictHead_1.ProofNodeDictHead;
