export { default as MerkleTree } from './FixedMerkleTree' export { PartialMerkleTree } from './PartialMerkleTree' export { simpleHash } from './simpleHash' export type HashFunction = { (left: T, right: T): string } export type MerkleTreeOptions = { hashFunction?: HashFunction zeroElement?: Element } export type Element = string | number export type SerializedTreeState = { levels: number, _zeros: Array, _layers: Array } export type SerializedPartialTreeState = { levels: number, leaves: Element[] _zeros: Array, _edgeLeafProof: ProofPath, _initialRoot: Element, _edgeLeaf: LeafWithIndex } export type ProofPath = { pathElements: Element[], pathIndices: number[], pathPositions: number[], } export type TreeEdge = { edgeElement: Element; edgePath: ProofPath; edgeIndex: number } export type Index = Element export type LeafWithIndex = { index: number, data: Element }