/* 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 {
    getContractAt(
      name: "IERC20Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC20Upgradeable>;
    getContractAt(
      name: "IERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC20>;
    getContractAt(
      name: "RetirementCertificates",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.RetirementCertificates>;
    getContractAt(
      name: "IToucanCarbonOffsets",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IToucanCarbonOffsets>;
    getContractAt(
      name: "IToucanPoolToken",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IToucanPoolToken>;
    getContractAt(
      name: "OffsetHelper",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.OffsetHelper>;
    getContractAt(
      name: "Swapper",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Swapper>;

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