import { Bool, Field, MerkleMap, MerkleMapWitness } from 'o1js'; declare class Level1MM extends MerkleMap { } declare class Level1Witness extends MerkleMapWitness { } declare const EMPTY_NULLIFIER_MAP: () => MerkleMap; declare const DefaultRootForNullifierMap: import("o1js/dist/node/lib/provable/field").Field; declare abstract class NullifierStorageBase { private _level1; private _leafs; constructor(leafs?: { level1Index: Field; leaf: RawLeaf | Field; }[]); get root(): Field; get level1(): Level1MM; get leafs(): { [key: string]: { raw: RawLeaf | undefined; leaf: Field; }; }; abstract calculateLeaf(rawLeaf: RawLeaf): Field; abstract calculateLevel1Index(args: any): Field; getLevel1Witness(level1Index: Field): Level1Witness; getWitness(level1Index: Field): Level1Witness; updateLeaf(level1Index: Field, leaf: Field): void; updateRawLeaf(level1Index: Field, rawLeaf: RawLeaf): void; } type NullifierLeaf = Bool; declare class NullifierStorage extends NullifierStorageBase { static calculateLeaf(used: NullifierLeaf): Field; calculateLeaf(used: NullifierLeaf): Field; static calculateLevel1Index({ nullifier, projectId, // since one nullifier can be used for many vestingId, }: { nullifier: Field; projectId: Field; vestingId: Field; }): Field; calculateLevel1Index({ nullifier, projectId, // since one nullifier can be used for many vestingId, }: { nullifier: Field; projectId: Field; vestingId: Field; }): Field; } export { EMPTY_NULLIFIER_MAP, DefaultRootForNullifierMap, NullifierStorageBase, NullifierStorage, NullifierLeaf, Level1MM as NullifierLevel1MM, Level1Witness as NullifierLevel1Witness, };