import { CircuitValue } from './circuit_value.js'; import { Field, Bool } from './core.js'; import { MerkleTree } from './merkle_tree.js'; export declare class MerkleMap { tree: InstanceType; /** * Creates a new, empty Merkle Map. * @returns A new MerkleMap */ constructor(); _keyToIndex(key: Field): bigint; /** * Sets a key of the merkle map to a given value. * @param key The key to set in the map. * @param key The value to set. */ set(key: Field, value: Field): void; /** * Returns a value given a key. Values are by default Field(0). * @param key The key to get the value from. * @returns The value stored at the key. */ get(key: Field): import("./field.js").Field; /** * Returns the root of the Merkle Map. * @returns The root of the Merkle Map. */ getRoot(): import("./field.js").Field; /** * Returns a circuit-compatible witness (also known as [Merkle Proof or Merkle Witness](https://computersciencewiki.org/index.php/Merkle_proof)) for the given key. * @param key The key to make a witness for. * @returns A MerkleMapWitness, which can be used to assert changes to the MerkleMap, and the witness's key. */ getWitness(key: Field): MerkleMapWitness; } export declare class MerkleMapWitness extends CircuitValue { isLefts: Bool[]; siblings: Field[]; constructor(isLefts: Bool[], siblings: Field[]); /** * computes the merkle tree root for a given value and the key for this witness * @param value The value to compute the root for. * @returns A tuple of the computed merkle root, and the key that is connected to the path updated by this witness. */ computeRootAndKey(value: Field): import("./field.js").Field[]; }