/* 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: "Ownable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Ownable__factory>;
    getContractFactory(
      name: "ERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC20__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: "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: "BNPL",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.BNPL__factory>;
    getContractFactory(
      name: "Conduit",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Conduit__factory>;
    getContractFactory(
      name: "ConduitController",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ConduitController__factory>;
    getContractFactory(
      name: "ERC4907",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC4907__factory>;
    getContractFactory(
      name: "IERC721Metadata",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC721Metadata__factory>;
    getContractFactory(
      name: "GenericERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.GenericERC20__factory>;
    getContractFactory(
      name: "ConduitControllerInterface",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ConduitControllerInterface__factory>;
    getContractFactory(
      name: "ConduitInterface",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ConduitInterface__factory>;
    getContractFactory(
      name: "ConsiderationEventsAndErrors",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ConsiderationEventsAndErrors__factory>;
    getContractFactory(
      name: "EIP1271Interface",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.EIP1271Interface__factory>;
    getContractFactory(
      name: "IERC4907",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC4907__factory>;
    getContractFactory(
      name: "ReentrancyErrors",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ReentrancyErrors__factory>;
    getContractFactory(
      name: "SignatureVerificationErrors",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SignatureVerificationErrors__factory>;
    getContractFactory(
      name: "TokenTransferrerErrors",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TokenTransferrerErrors__factory>;
    getContractFactory(
      name: "Assertions",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Assertions__factory>;
    getContractFactory(
      name: "Consideration",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Consideration__factory>;
    getContractFactory(
      name: "ConsiderationBase",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ConsiderationBase__factory>;
    getContractFactory(
      name: "CounterManager",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.CounterManager__factory>;
    getContractFactory(
      name: "Executor",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Executor__factory>;
    getContractFactory(
      name: "GettersAndDerivers",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.GettersAndDerivers__factory>;
    getContractFactory(
      name: "OrderFulfiller",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.OrderFulfiller__factory>;
    getContractFactory(
      name: "OrderValidator",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.OrderValidator__factory>;
    getContractFactory(
      name: "ReentrancyGuard",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ReentrancyGuard__factory>;
    getContractFactory(
      name: "IMintBurnableERC4907",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IMintBurnableERC4907__factory>;
    getContractFactory(
      name: "Shadow",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Shadow__factory>;
    getContractFactory(
      name: "SignatureVerification",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SignatureVerification__factory>;
    getContractFactory(
      name: "TokenTransferrer",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TokenTransferrer__factory>;
    getContractFactory(
      name: "Verifiers",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Verifiers__factory>;
    getContractFactory(
      name: "TestERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TestERC20__factory>;
    getContractFactory(
      name: "TestERC721",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TestERC721__factory>;
    getContractFactory(
      name: "ERC721AIERC721Receiver",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC721AIERC721Receiver__factory>;
    getContractFactory(
      name: "ERC721A",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC721A__factory>;
    getContractFactory(
      name: "ERC4907A",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC4907A__factory>;
    getContractFactory(
      name: "IERC4907A",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC4907A__factory>;
    getContractFactory(
      name: "IERC721A",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC721A__factory>;

    getContractAt(
      name: "Ownable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Ownable>;
    getContractAt(
      name: "ERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC20>;
    getContractAt(
      name: "IERC20Metadata",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC20Metadata>;
    getContractAt(
      name: "IERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC20>;
    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: "BNPL",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.BNPL>;
    getContractAt(
      name: "Conduit",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Conduit>;
    getContractAt(
      name: "ConduitController",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ConduitController>;
    getContractAt(
      name: "ERC4907",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC4907>;
    getContractAt(
      name: "IERC721Metadata",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC721Metadata>;
    getContractAt(
      name: "GenericERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.GenericERC20>;
    getContractAt(
      name: "ConduitControllerInterface",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ConduitControllerInterface>;
    getContractAt(
      name: "ConduitInterface",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ConduitInterface>;
    getContractAt(
      name: "ConsiderationEventsAndErrors",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ConsiderationEventsAndErrors>;
    getContractAt(
      name: "EIP1271Interface",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.EIP1271Interface>;
    getContractAt(
      name: "IERC4907",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC4907>;
    getContractAt(
      name: "ReentrancyErrors",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ReentrancyErrors>;
    getContractAt(
      name: "SignatureVerificationErrors",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SignatureVerificationErrors>;
    getContractAt(
      name: "TokenTransferrerErrors",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TokenTransferrerErrors>;
    getContractAt(
      name: "Assertions",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Assertions>;
    getContractAt(
      name: "Consideration",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Consideration>;
    getContractAt(
      name: "ConsiderationBase",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ConsiderationBase>;
    getContractAt(
      name: "CounterManager",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.CounterManager>;
    getContractAt(
      name: "Executor",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Executor>;
    getContractAt(
      name: "GettersAndDerivers",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.GettersAndDerivers>;
    getContractAt(
      name: "OrderFulfiller",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.OrderFulfiller>;
    getContractAt(
      name: "OrderValidator",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.OrderValidator>;
    getContractAt(
      name: "ReentrancyGuard",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ReentrancyGuard>;
    getContractAt(
      name: "IMintBurnableERC4907",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IMintBurnableERC4907>;
    getContractAt(
      name: "Shadow",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Shadow>;
    getContractAt(
      name: "SignatureVerification",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SignatureVerification>;
    getContractAt(
      name: "TokenTransferrer",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TokenTransferrer>;
    getContractAt(
      name: "Verifiers",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Verifiers>;
    getContractAt(
      name: "TestERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TestERC20>;
    getContractAt(
      name: "TestERC721",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TestERC721>;
    getContractAt(
      name: "ERC721AIERC721Receiver",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC721AIERC721Receiver>;
    getContractAt(
      name: "ERC721A",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC721A>;
    getContractAt(
      name: "ERC4907A",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC4907A>;
    getContractAt(
      name: "IERC4907A",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC4907A>;
    getContractAt(
      name: "IERC721A",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC721A>;

    // 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>;
  }
}
