/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */

import { ethers } from "ethers";
import {
  FactoryOptions,
  HardhatEthersHelpers as HardhatEthersHelpersBase,
} from "@nomiclabs/hardhat-ethers/types";

import * as Contracts from ".";

declare module "hardhat/types/runtime" {
  interface HardhatEthersHelpers extends HardhatEthersHelpersBase {
    getContractFactory(
      name: "AccessControl",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.AccessControl__factory>;
    getContractFactory(
      name: "AccessControlEnumerable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.AccessControlEnumerable__factory>;
    getContractFactory(
      name: "IAccessControl",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAccessControl__factory>;
    getContractFactory(
      name: "IAccessControlEnumerable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAccessControlEnumerable__factory>;
    getContractFactory(
      name: "Pausable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Pausable__factory>;
    getContractFactory(
      name: "ERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC20__factory>;
    getContractFactory(
      name: "IERC20Permit",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC20Permit__factory>;
    getContractFactory(
      name: "ERC20Burnable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC20Burnable__factory>;
    getContractFactory(
      name: "ERC20Pausable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC20Pausable__factory>;
    getContractFactory(
      name: "IERC20Metadata",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC20Metadata__factory>;
    getContractFactory(
      name: "IERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC20__factory>;
    getContractFactory(
      name: "ERC20PresetMinterPauser",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC20PresetMinterPauser__factory>;
    getContractFactory(
      name: "ERC721",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC721__factory>;
    getContractFactory(
      name: "IERC721Metadata",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC721Metadata__factory>;
    getContractFactory(
      name: "IERC721",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC721__factory>;
    getContractFactory(
      name: "IERC721Receiver",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC721Receiver__factory>;
    getContractFactory(
      name: "ERC165",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC165__factory>;
    getContractFactory(
      name: "IERC165",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC165__factory>;
    getContractFactory(
      name: "DeterministicDeployFactory",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.DeterministicDeployFactory__factory>;
    getContractFactory(
      name: "AnchorHandler",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.AnchorHandler__factory>;
    getContractFactory(
      name: "HandlerHelpers",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.HandlerHelpers__factory>;
    getContractFactory(
      name: "TokenWrapperHandler",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TokenWrapperHandler__factory>;
    getContractFactory(
      name: "TreasuryHandler",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TreasuryHandler__factory>;
    getContractFactory(
      name: "IHasher",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IHasher__factory>;
    getContractFactory(
      name: "KeccakHasher",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.KeccakHasher__factory>;
    getContractFactory(
      name: "PoseidonT2",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PoseidonT2__factory>;
    getContractFactory(
      name: "PoseidonT3",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PoseidonT3__factory>;
    getContractFactory(
      name: "PoseidonT4",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PoseidonT4__factory>;
    getContractFactory(
      name: "PoseidonT5",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PoseidonT5__factory>;
    getContractFactory(
      name: "PoseidonT6",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PoseidonT6__factory>;
    getContractFactory(
      name: "PoseidonHasher",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PoseidonHasher__factory>;
    getContractFactory(
      name: "IAaveLendingPool",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAaveLendingPool__factory>;
    getContractFactory(
      name: "ISanctionsList",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ISanctionsList__factory>;
    getContractFactory(
      name: "IExecutor",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IExecutor__factory>;
    getContractFactory(
      name: "ILinkableAnchor",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ILinkableAnchor__factory>;
    getContractFactory(
      name: "IMerkleSystem",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IMerkleSystem__factory>;
    getContractFactory(
      name: "MerkleSystem",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MerkleSystem__factory>;
    getContractFactory(
      name: "ITreasury",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ITreasury__factory>;
    getContractFactory(
      name: "IAaveTokenWrapper",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAaveTokenWrapper__factory>;
    getContractFactory(
      name: "IFungibleTokenWrapper",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IFungibleTokenWrapper__factory>;
    getContractFactory(
      name: "IMintableERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IMintableERC20__factory>;
    getContractFactory(
      name: "ITokenWrapper",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ITokenWrapper__factory>;
    getContractFactory(
      name: "IAnchorVerifier",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAnchorVerifier__factory>;
    getContractFactory(
      name: "ISetVerifier",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ISetVerifier__factory>;
    getContractFactory(
      name: "IVAnchorVerifier2_16",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IVAnchorVerifier2_16__factory>;
    getContractFactory(
      name: "IVAnchorVerifier2_2",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IVAnchorVerifier2_2__factory>;
    getContractFactory(
      name: "IVAnchorVerifier8_16",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IVAnchorVerifier8_16__factory>;
    getContractFactory(
      name: "IVAnchorVerifier8_2",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IVAnchorVerifier8_2__factory>;
    getContractFactory(
      name: "VAnchorEncodeInputs",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.VAnchorEncodeInputs__factory>;
    getContractFactory(
      name: "ERC20Mock",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC20Mock__factory>;
    getContractFactory(
      name: "ERC721Mintable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC721Mintable__factory>;
    getContractFactory(
      name: "LinkableAnchorMock",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.LinkableAnchorMock__factory>;
    getContractFactory(
      name: "MerkleForestMock",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MerkleForestMock__factory>;
    getContractFactory(
      name: "MerkleTreeMock",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MerkleTreeMock__factory>;
    getContractFactory(
      name: "SignatureBridge",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SignatureBridge__factory>;
    getContractFactory(
      name: "AaveTokenWrapper",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.AaveTokenWrapper__factory>;
    getContractFactory(
      name: "FungibleTokenWrapper",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.FungibleTokenWrapper__factory>;
    getContractFactory(
      name: "TokenWrapper",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TokenWrapper__factory>;
    getContractFactory(
      name: "Treasury",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Treasury__factory>;
    getContractFactory(
      name: "LinkableIncrementalBinaryTree",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.LinkableIncrementalBinaryTree__factory>;
    getContractFactory(
      name: "MerkleForest",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MerkleForest__factory>;
    getContractFactory(
      name: "MerkleTree",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MerkleTree__factory>;
    getContractFactory(
      name: "MerkleTreeWithHistory",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MerkleTreeWithHistory__factory>;
    getContractFactory(
      name: "ChainIdWithType",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ChainIdWithType__factory>;
    getContractFactory(
      name: "Governable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Governable__factory>;
    getContractFactory(
      name: "Initialized",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Initialized__factory>;
    getContractFactory(
      name: "ProofUtils",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ProofUtils__factory>;
    getContractFactory(
      name: "ProposalNonceTracker",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ProposalNonceTracker__factory>;
    getContractFactory(
      name: "LinkableAnchor",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.LinkableAnchor__factory>;
    getContractFactory(
      name: "VAnchor",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.VAnchor__factory>;
    getContractFactory(
      name: "VAnchorBase",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.VAnchorBase__factory>;
    getContractFactory(
      name: "ZKVAnchorBase",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ZKVAnchorBase__factory>;
    getContractFactory(
      name: "ChainalysisVAnchor",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ChainalysisVAnchor__factory>;
    getContractFactory(
      name: "RateLimitedVAnchor",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.RateLimitedVAnchor__factory>;
    getContractFactory(
      name: "VAnchorForest",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.VAnchorForest__factory>;
    getContractFactory(
      name: "VAnchorTree",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.VAnchorTree__factory>;
    getContractFactory(
      name: "TxProofVerifier",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TxProofVerifier__factory>;
    getContractFactory(
      name: "Verifier2_16",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Verifier2_16__factory>;
    getContractFactory(
      name: "Verifier8_16",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Verifier8_16__factory>;
    getContractFactory(
      name: "Verifier2_2",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Verifier2_2__factory>;
    getContractFactory(
      name: "Verifier8_2",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Verifier8_2__factory>;
    getContractFactory(
      name: "VerifierF2_16",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.VerifierF2_16__factory>;
    getContractFactory(
      name: "VerifierF8_16",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.VerifierF8_16__factory>;
    getContractFactory(
      name: "VerifierF2_2",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.VerifierF2_2__factory>;
    getContractFactory(
      name: "VerifierF8_2",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.VerifierF8_2__factory>;
    getContractFactory(
      name: "VAnchorVerifier",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.VAnchorVerifier__factory>;

    getContractAt(
      name: "AccessControl",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.AccessControl>;
    getContractAt(
      name: "AccessControlEnumerable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.AccessControlEnumerable>;
    getContractAt(
      name: "IAccessControl",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IAccessControl>;
    getContractAt(
      name: "IAccessControlEnumerable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IAccessControlEnumerable>;
    getContractAt(
      name: "Pausable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Pausable>;
    getContractAt(
      name: "ERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC20>;
    getContractAt(
      name: "IERC20Permit",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC20Permit>;
    getContractAt(
      name: "ERC20Burnable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC20Burnable>;
    getContractAt(
      name: "ERC20Pausable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC20Pausable>;
    getContractAt(
      name: "IERC20Metadata",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC20Metadata>;
    getContractAt(
      name: "IERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC20>;
    getContractAt(
      name: "ERC20PresetMinterPauser",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC20PresetMinterPauser>;
    getContractAt(
      name: "ERC721",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC721>;
    getContractAt(
      name: "IERC721Metadata",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC721Metadata>;
    getContractAt(
      name: "IERC721",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC721>;
    getContractAt(
      name: "IERC721Receiver",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC721Receiver>;
    getContractAt(
      name: "ERC165",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC165>;
    getContractAt(
      name: "IERC165",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC165>;
    getContractAt(
      name: "DeterministicDeployFactory",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.DeterministicDeployFactory>;
    getContractAt(
      name: "AnchorHandler",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.AnchorHandler>;
    getContractAt(
      name: "HandlerHelpers",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.HandlerHelpers>;
    getContractAt(
      name: "TokenWrapperHandler",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TokenWrapperHandler>;
    getContractAt(
      name: "TreasuryHandler",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TreasuryHandler>;
    getContractAt(
      name: "IHasher",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IHasher>;
    getContractAt(
      name: "KeccakHasher",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.KeccakHasher>;
    getContractAt(
      name: "PoseidonT2",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PoseidonT2>;
    getContractAt(
      name: "PoseidonT3",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PoseidonT3>;
    getContractAt(
      name: "PoseidonT4",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PoseidonT4>;
    getContractAt(
      name: "PoseidonT5",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PoseidonT5>;
    getContractAt(
      name: "PoseidonT6",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PoseidonT6>;
    getContractAt(
      name: "PoseidonHasher",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PoseidonHasher>;
    getContractAt(
      name: "IAaveLendingPool",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IAaveLendingPool>;
    getContractAt(
      name: "ISanctionsList",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ISanctionsList>;
    getContractAt(
      name: "IExecutor",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IExecutor>;
    getContractAt(
      name: "ILinkableAnchor",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ILinkableAnchor>;
    getContractAt(
      name: "IMerkleSystem",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IMerkleSystem>;
    getContractAt(
      name: "MerkleSystem",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.MerkleSystem>;
    getContractAt(
      name: "ITreasury",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ITreasury>;
    getContractAt(
      name: "IAaveTokenWrapper",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IAaveTokenWrapper>;
    getContractAt(
      name: "IFungibleTokenWrapper",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IFungibleTokenWrapper>;
    getContractAt(
      name: "IMintableERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IMintableERC20>;
    getContractAt(
      name: "ITokenWrapper",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ITokenWrapper>;
    getContractAt(
      name: "IAnchorVerifier",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IAnchorVerifier>;
    getContractAt(
      name: "ISetVerifier",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ISetVerifier>;
    getContractAt(
      name: "IVAnchorVerifier2_16",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IVAnchorVerifier2_16>;
    getContractAt(
      name: "IVAnchorVerifier2_2",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IVAnchorVerifier2_2>;
    getContractAt(
      name: "IVAnchorVerifier8_16",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IVAnchorVerifier8_16>;
    getContractAt(
      name: "IVAnchorVerifier8_2",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IVAnchorVerifier8_2>;
    getContractAt(
      name: "VAnchorEncodeInputs",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.VAnchorEncodeInputs>;
    getContractAt(
      name: "ERC20Mock",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC20Mock>;
    getContractAt(
      name: "ERC721Mintable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC721Mintable>;
    getContractAt(
      name: "LinkableAnchorMock",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.LinkableAnchorMock>;
    getContractAt(
      name: "MerkleForestMock",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.MerkleForestMock>;
    getContractAt(
      name: "MerkleTreeMock",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.MerkleTreeMock>;
    getContractAt(
      name: "SignatureBridge",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SignatureBridge>;
    getContractAt(
      name: "AaveTokenWrapper",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.AaveTokenWrapper>;
    getContractAt(
      name: "FungibleTokenWrapper",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.FungibleTokenWrapper>;
    getContractAt(
      name: "TokenWrapper",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TokenWrapper>;
    getContractAt(
      name: "Treasury",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Treasury>;
    getContractAt(
      name: "LinkableIncrementalBinaryTree",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.LinkableIncrementalBinaryTree>;
    getContractAt(
      name: "MerkleForest",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.MerkleForest>;
    getContractAt(
      name: "MerkleTree",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.MerkleTree>;
    getContractAt(
      name: "MerkleTreeWithHistory",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.MerkleTreeWithHistory>;
    getContractAt(
      name: "ChainIdWithType",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ChainIdWithType>;
    getContractAt(
      name: "Governable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Governable>;
    getContractAt(
      name: "Initialized",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Initialized>;
    getContractAt(
      name: "ProofUtils",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ProofUtils>;
    getContractAt(
      name: "ProposalNonceTracker",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ProposalNonceTracker>;
    getContractAt(
      name: "LinkableAnchor",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.LinkableAnchor>;
    getContractAt(
      name: "VAnchor",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.VAnchor>;
    getContractAt(
      name: "VAnchorBase",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.VAnchorBase>;
    getContractAt(
      name: "ZKVAnchorBase",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ZKVAnchorBase>;
    getContractAt(
      name: "ChainalysisVAnchor",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ChainalysisVAnchor>;
    getContractAt(
      name: "RateLimitedVAnchor",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.RateLimitedVAnchor>;
    getContractAt(
      name: "VAnchorForest",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.VAnchorForest>;
    getContractAt(
      name: "VAnchorTree",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.VAnchorTree>;
    getContractAt(
      name: "TxProofVerifier",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TxProofVerifier>;
    getContractAt(
      name: "Verifier2_16",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Verifier2_16>;
    getContractAt(
      name: "Verifier8_16",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Verifier8_16>;
    getContractAt(
      name: "Verifier2_2",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Verifier2_2>;
    getContractAt(
      name: "Verifier8_2",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Verifier8_2>;
    getContractAt(
      name: "VerifierF2_16",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.VerifierF2_16>;
    getContractAt(
      name: "VerifierF8_16",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.VerifierF8_16>;
    getContractAt(
      name: "VerifierF2_2",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.VerifierF2_2>;
    getContractAt(
      name: "VerifierF8_2",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.VerifierF8_2>;
    getContractAt(
      name: "VAnchorVerifier",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.VAnchorVerifier>;

    // default types
    getContractFactory(
      name: string,
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ethers.ContractFactory>;
    getContractFactory(
      abi: any[],
      bytecode: ethers.utils.BytesLike,
      signer?: ethers.Signer
    ): Promise<ethers.ContractFactory>;
    getContractAt(
      nameOrAbi: string | any[],
      address: string,
      signer?: ethers.Signer
    ): Promise<ethers.Contract>;
  }
}
