/**
 *
 * @param {Buffer} prefix
 * @param {MerkleProofElement} left
 * @param {MerkleProofElement} right
 */
export function ProofNode(prefix: Buffer, left: typeof MerkleProofElement, right: typeof MerkleProofElement): void;
export class ProofNode {
    /**
     *
     * @param {Buffer} prefix
     * @param {MerkleProofElement} left
     * @param {MerkleProofElement} right
     */
    constructor(prefix: Buffer, left: typeof MerkleProofElement, right: typeof MerkleProofElement);
    prefix: Buffer;
    left: typeof MerkleProofElement;
    right: typeof MerkleProofElement;
    constructor: typeof ProofNode;
}
/**
 *
 * @param {MerkleProofElement} left
 * @param {MerkleProofElement} right
 */
export function ProofNodeSimple(left: typeof MerkleProofElement, right: typeof MerkleProofElement): void;
export class ProofNodeSimple {
    /**
     *
     * @param {MerkleProofElement} left
     * @param {MerkleProofElement} right
     */
    constructor(left: typeof MerkleProofElement, right: typeof MerkleProofElement);
    constructor: typeof ProofNodeSimple;
}
/**
 *
 * @param {Buffer} merkleHash
 */
export function ProofHashedLeaf(merkleHash: Buffer): void;
export class ProofHashedLeaf {
    /**
     *
     * @param {Buffer} merkleHash
     */
    constructor(merkleHash: Buffer);
    merkleHash: Buffer;
    constructor: typeof ProofHashedLeaf;
    /**
     * @param {ProofHashedLeaf} other
     */
    equals(other: ProofHashedLeaf): boolean;
}
/**
 *
 * @param {*} content
 * @param {SearchablePathElement} pathElem
 */
export function ProofValueLeaf(content: any, pathElem: SearchablePathElement): void;
export class ProofValueLeaf {
    /**
     *
     * @param {*} content
     * @param {SearchablePathElement} pathElem
     */
    constructor(content: any, pathElem: SearchablePathElement);
    content: any;
    pathElem: SearchablePathElement;
    constructor: typeof ProofValueLeaf;
}
/**
 *
 * @param {MerkleProofElement} left
 * @param {MerkleProofElement} right
 * @param {SearchablePathElement} pathElem
 */
export function ProofNodeArrayHead(left: typeof MerkleProofElement, right: typeof MerkleProofElement, pathElem?: SearchablePathElement): void;
export class ProofNodeArrayHead {
    /**
     *
     * @param {MerkleProofElement} left
     * @param {MerkleProofElement} right
     * @param {SearchablePathElement} pathElem
     */
    constructor(left: typeof MerkleProofElement, right: typeof MerkleProofElement, pathElem?: SearchablePathElement);
    pathElem: SearchablePathElement;
    constructor: typeof ProofNodeArrayHead;
}
/**
 *
 * @param {MerkleProofElement} left
 * @param {MerkleProofElement} right
 * @param {SearchablePathElement} pathElem
 */
export function ProofNodeDictHead(left: typeof MerkleProofElement, right: typeof MerkleProofElement, pathElem?: SearchablePathElement): void;
export class ProofNodeDictHead {
    /**
     *
     * @param {MerkleProofElement} left
     * @param {MerkleProofElement} right
     * @param {SearchablePathElement} pathElem
     */
    constructor(left: typeof MerkleProofElement, right: typeof MerkleProofElement, pathElem?: SearchablePathElement);
    pathElem: SearchablePathElement;
    constructor: typeof ProofNodeDictHead;
}
/**
 *
 */
export function MerkleProofElement(): void;
/**
 *
 * @param {MerkleProofElement} root
 */
export function MerkleProofTree(root: typeof MerkleProofElement): void;
export class MerkleProofTree {
    /**
     *
     * @param {MerkleProofElement} root
     */
    constructor(root: typeof MerkleProofElement);
    root: typeof MerkleProofElement;
    maxLevel(): any;
    /**
     * @param {MerkleProofElement} node
     */
    maxLevelInternal(node: typeof MerkleProofElement): any;
}
import SearchablePathElement_1 = require("../path");
import SearchablePathElement = SearchablePathElement_1.SearchablePathElement;
