import { Bool, Field, Provable } from 'o1js'; import { Hasher } from '../model.js'; export { TreeHasher }; /** * Tree Hasher * * @class TreeHasher * @template K * @template V */ declare class TreeHasher { private hasher; private keyType?; private valueType?; /** * Creates an instance of TreeHasher. * @param {Provable} keyType * @param {Provable} valueType * @param {Hasher} [hasher=PoseidonHasherFunc] * @memberof TreeHasher */ constructor(hasher?: Hasher, keyType?: Provable, valueType?: Provable); /** * Tree Hasher based on PoseidonHasherFunc * * @static * @template K * @template V * @param {Provable} keyType * @param {Provable} valueType * @return {*} {TreeHasher} * @memberof TreeHasher */ static poseidon(keyType?: Provable, valueType?: Provable): TreeHasher; digestValue(value: V): Field; path(k: K): Field; getHasher(): Hasher; digestLeaf(path: Field, leafData: Field): { hash: Field; value: Field[]; }; parseLeaf(data: Field[]): { path: Field; leaf: Field; }; isLeaf(data: Field[]): boolean; isEmptyData(data: Field[]): boolean; isEmptyDataInCircuit(data: Field[]): Bool; emptyData(): Field[]; digestNode(leftData: Field, rightData: Field): { hash: Field; value: Field[]; }; parseNode(data: Field[]): { leftNode: Field; rightNode: Field; }; }