export declare const hashTreeIndexV2Abi: readonly [{ readonly type: "constructor"; readonly inputs: readonly [{ readonly name: "initialOwner"; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "addRelayer"; readonly inputs: readonly [{ readonly name: "_relayerAddr"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "getAllowedRelayers"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address[]"; readonly internalType: "address[]"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "isRelayerAllowed"; readonly inputs: readonly [{ readonly name: "_relayerAddr"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; readonly internalType: "bool"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "latestDataUri"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "string"; readonly internalType: "string"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "latestMerkleRoot"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "bytes32"; readonly internalType: "bytes32"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "latestRelayer"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "owner"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "removeRelayer"; readonly inputs: readonly [{ readonly name: "_relayerAddr"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "renounceOwnership"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "transferOwnership"; readonly inputs: readonly [{ readonly name: "newOwner"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "updateMerkleRoot"; readonly inputs: readonly [{ readonly name: "root"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "dataUri"; readonly type: "string"; readonly internalType: "string"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "verifyMerkleProof"; readonly inputs: readonly [{ readonly name: "merkleRoot"; readonly type: "bytes32"; readonly internalType: "bytes32"; }, { readonly name: "merkleProof"; readonly type: "bytes[]"; readonly internalType: "bytes[]"; }, { readonly name: "hash"; readonly type: "bytes"; readonly internalType: "bytes"; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "bool"; readonly internalType: "bool"; }]; readonly stateMutability: "pure"; }, { readonly type: "event"; readonly name: "MerkleRootUpdated"; readonly inputs: readonly [{ readonly name: "sender"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "previousRoot"; readonly type: "bytes32"; readonly indexed: false; readonly internalType: "bytes32"; }, { readonly name: "newRoot"; readonly type: "bytes32"; readonly indexed: false; readonly internalType: "bytes32"; }, { readonly name: "dataUri"; readonly type: "string"; readonly indexed: false; readonly internalType: "string"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "OwnershipTransferred"; readonly inputs: readonly [{ readonly name: "previousOwner"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "newOwner"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "RelayerAddressAdded"; readonly inputs: readonly [{ readonly name: "relayerAddr"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "RelayerAddressRemoved"; readonly inputs: readonly [{ readonly name: "relayerAddr"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "error"; readonly name: "AlreadyExists"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "NotAllowed"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "NotExists"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "OwnableInvalidOwner"; readonly inputs: readonly [{ readonly name: "owner"; readonly type: "address"; readonly internalType: "address"; }]; }, { readonly type: "error"; readonly name: "OwnableUnauthorizedAccount"; readonly inputs: readonly [{ readonly name: "account"; readonly type: "address"; readonly internalType: "address"; }]; }];