/* 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: "Ownable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Ownable__factory>;
    getContractFactory(
      name: "IERC1822Proxiable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC1822Proxiable__factory>;
    getContractFactory(
      name: "IBeacon",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IBeacon__factory>;
    getContractFactory(
      name: "ERC1967Proxy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC1967Proxy__factory>;
    getContractFactory(
      name: "ERC1967Upgrade",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC1967Upgrade__factory>;
    getContractFactory(
      name: "Proxy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Proxy__factory>;
    getContractFactory(
      name: "TransparentUpgradeableProxy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TransparentUpgradeableProxy__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: "ERC165",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC165__factory>;
    getContractFactory(
      name: "IERC165",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC165__factory>;
    getContractFactory(
      name: "IERC1820Implementer",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC1820Implementer__factory>;
    getContractFactory(
      name: "IERC1820Registry",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC1820Registry__factory>;
    getContractFactory(
      name: "DelegatePermit",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.DelegatePermit__factory>;
    getContractFactory(
      name: "ECO",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ECO__factory>;
    getContractFactory(
      name: "ECOx",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ECOx__factory>;
    getContractFactory(
      name: "ERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC20__factory>;
    getContractFactory(
      name: "ERC20Pausable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC20Pausable__factory>;
    getContractFactory(
      name: "ERC20Permit",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC20Permit__factory>;
    getContractFactory(
      name: "IECO",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IECO__factory>;
    getContractFactory(
      name: "InflationCheckpoints",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.InflationCheckpoints__factory>;
    getContractFactory(
      name: "TokenInit",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TokenInit__factory>;
    getContractFactory(
      name: "VoteCheckpoints",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.VoteCheckpoints__factory>;
    getContractFactory(
      name: "EcoBootstrap",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.EcoBootstrap__factory>;
    getContractFactory(
      name: "EcoFaucet",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.EcoFaucet__factory>;
    getContractFactory(
      name: "EcoInitializable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.EcoInitializable__factory>;
    getContractFactory(
      name: "Destructable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Destructable__factory>;
    getContractFactory(
      name: "EcoTestCleanup",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.EcoTestCleanup__factory>;
    getContractFactory(
      name: "ECOxStaking",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ECOxStaking__factory>;
    getContractFactory(
      name: "PolicyProposals",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PolicyProposals__factory>;
    getContractFactory(
      name: "PolicyVotes",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PolicyVotes__factory>;
    getContractFactory(
      name: "AccessRootPolicyFunds",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.AccessRootPolicyFunds__factory>;
    getContractFactory(
      name: "ElectCircuitBreaker",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ElectCircuitBreaker__factory>;
    getContractFactory(
      name: "FirstTrusteeElection",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.FirstTrusteeElection__factory>;
    getContractFactory(
      name: "IRHPUpgrade",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IRHPUpgrade__factory>;
    getContractFactory(
      name: "IRHPUpgradeAndNotifierData",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IRHPUpgradeAndNotifierData__factory>;
    getContractFactory(
      name: "LockupUpgradeAndNotifier",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.LockupUpgradeAndNotifier__factory>;
    getContractFactory(
      name: "Proposal",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Proposal__factory>;
    getContractFactory(
      name: "SingleTrusteeReplacement",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SingleTrusteeReplacement__factory>;
    getContractFactory(
      name: "TrusteeReplacement",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TrusteeReplacement__factory>;
    getContractFactory(
      name: "VoteCheckpointsUpgrade",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.VoteCheckpointsUpgrade__factory>;
    getContractFactory(
      name: "VotingPower",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.VotingPower__factory>;
    getContractFactory(
      name: "CurrencyTimer",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.CurrencyTimer__factory>;
    getContractFactory(
      name: "IGeneration",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IGeneration__factory>;
    getContractFactory(
      name: "IGenerationIncrease",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IGenerationIncrease__factory>;
    getContractFactory(
      name: "CurrencyGovernance",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.CurrencyGovernance__factory>;
    getContractFactory(
      name: "InflationRootHashProposal",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.InflationRootHashProposal__factory>;
    getContractFactory(
      name: "Lockup",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Lockup__factory>;
    getContractFactory(
      name: "RandomInflation",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.RandomInflation__factory>;
    getContractFactory(
      name: "TrustedNodes",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TrustedNodes__factory>;
    getContractFactory(
      name: "Notifier",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Notifier__factory>;
    getContractFactory(
      name: "TimedPolicies",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TimedPolicies__factory>;
    getContractFactory(
      name: "Migrations",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Migrations__factory>;
    getContractFactory(
      name: "Policed",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Policed__factory>;
    getContractFactory(
      name: "PolicedUtils",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PolicedUtils__factory>;
    getContractFactory(
      name: "Policy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Policy__factory>;
    getContractFactory(
      name: "PolicyInit",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PolicyInit__factory>;
    getContractFactory(
      name: "ForwardProxy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ForwardProxy__factory>;
    getContractFactory(
      name: "ForwardTarget",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ForwardTarget__factory>;
    getContractFactory(
      name: "Backdoor",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Backdoor__factory>;
    getContractFactory(
      name: "BackdoorProposal",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.BackdoorProposal__factory>;
    getContractFactory(
      name: "Empty",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Empty__factory>;
    getContractFactory(
      name: "PolicyTest",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PolicyTest__factory>;
    getContractFactory(
      name: "SampleHandler",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SampleHandler__factory>;
    getContractFactory(
      name: "SampleProposal",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SampleProposal__factory>;
    getContractFactory(
      name: "BigNum",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.BigNum__factory>;
    getContractFactory(
      name: "Cloner",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Cloner__factory>;
    getContractFactory(
      name: "DummyAMMPool",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.DummyAMMPool__factory>;
    getContractFactory(
      name: "FailingInitializeContract",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.FailingInitializeContract__factory>;
    getContractFactory(
      name: "FakeInflation",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.FakeInflation__factory>;
    getContractFactory(
      name: "FakePolicy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.FakePolicy__factory>;
    getContractFactory(
      name: "FlashLoaner",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.FlashLoaner__factory>;
    getContractFactory(
      name: "ForwardTargetImpl",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ForwardTargetImpl__factory>;
    getContractFactory(
      name: "ImplementationUpdatingTarget",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ImplementationUpdatingTarget__factory>;
    getContractFactory(
      name: "InfiniteVote",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.InfiniteVote__factory>;
    getContractFactory(
      name: "MakeBackdoor",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MakeBackdoor__factory>;
    getContractFactory(
      name: "MakePoodle",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MakePoodle__factory>;
    getContractFactory(
      name: "MakeRich",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MakeRich__factory>;
    getContractFactory(
      name: "MakeTrustedPoodles",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MakeTrustedPoodles__factory>;
    getContractFactory(
      name: "Killable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Killable__factory>;
    getContractFactory(
      name: "MurderousPolicy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MurderousPolicy__factory>;
    getContractFactory(
      name: "DummyInflation",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.DummyInflation__factory>;
    getContractFactory(
      name: "DummyPoliced",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.DummyPoliced__factory>;
    getContractFactory(
      name: "DummyPolicedUtils",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.DummyPolicedUtils__factory>;
    getContractFactory(
      name: "FakeCommandAction",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.FakeCommandAction__factory>;
    getContractFactory(
      name: "FakeCommander",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.FakeCommander__factory>;
    getContractFactory(
      name: "Policer",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Policer__factory>;
    getContractFactory(
      name: "PolicyForAll",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PolicyForAll__factory>;
    getContractFactory(
      name: "PolicyTestPolicy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PolicyTestPolicy__factory>;
    getContractFactory(
      name: "RegistrationAttemptContract",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.RegistrationAttemptContract__factory>;
    getContractFactory(
      name: "RevertingAction",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.RevertingAction__factory>;
    getContractFactory(
      name: "PoodleCurrencyGovernance",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PoodleCurrencyGovernance__factory>;
    getContractFactory(
      name: "PoodleECO",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PoodleECO__factory>;
    getContractFactory(
      name: "PoodleIRHP",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PoodleIRHP__factory>;
    getContractFactory(
      name: "PoodleLockup",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PoodleLockup__factory>;
    getContractFactory(
      name: "PoodleTrustedNodes",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PoodleTrustedNodes__factory>;
    getContractFactory(
      name: "PoodlexStaking",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PoodlexStaking__factory>;
    getContractFactory(
      name: "SampleForward",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SampleForward__factory>;
    getContractFactory(
      name: "Subvoter",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Subvoter__factory>;
    getContractFactory(
      name: "SumVerifier",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SumVerifier__factory>;
    getContractFactory(
      name: "SwitcherCurrencyTimer",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SwitcherCurrencyTimer__factory>;
    getContractFactory(
      name: "SwitcherRandomInflation",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SwitcherRandomInflation__factory>;
    getContractFactory(
      name: "SwitcherTimedPolicies",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SwitcherTimedPolicies__factory>;
    getContractFactory(
      name: "TestPolicy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TestPolicy__factory>;
    getContractFactory(
      name: "Token",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Token__factory>;
    getContractFactory(
      name: "Token20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Token20__factory>;
    getContractFactory(
      name: "Token827",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Token827__factory>;
    getContractFactory(
      name: "TokenTarget",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TokenTarget__factory>;
    getContractFactory(
      name: "VdfCloner",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.VdfCloner__factory>;
    getContractFactory(
      name: "OZProxy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.OZProxy__factory>;
    getContractFactory(
      name: "UpgradedWrapper",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.UpgradedWrapper__factory>;
    getContractFactory(
      name: "Wrapper",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Wrapper__factory>;
    getContractFactory(
      name: "WrapperUpgradeProposal",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.WrapperUpgradeProposal__factory>;
    getContractFactory(
      name: "IsPrime",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IsPrime__factory>;
    getContractFactory(
      name: "VDFVerifier",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.VDFVerifier__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: "Ownable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Ownable>;
    getContractAt(
      name: "IERC1822Proxiable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC1822Proxiable>;
    getContractAt(
      name: "IBeacon",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IBeacon>;
    getContractAt(
      name: "ERC1967Proxy",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC1967Proxy>;
    getContractAt(
      name: "ERC1967Upgrade",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC1967Upgrade>;
    getContractAt(
      name: "Proxy",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Proxy>;
    getContractAt(
      name: "TransparentUpgradeableProxy",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TransparentUpgradeableProxy>;
    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: "ERC165",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC165>;
    getContractAt(
      name: "IERC165",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC165>;
    getContractAt(
      name: "IERC1820Implementer",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC1820Implementer>;
    getContractAt(
      name: "IERC1820Registry",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC1820Registry>;
    getContractAt(
      name: "DelegatePermit",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.DelegatePermit>;
    getContractAt(
      name: "ECO",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ECO>;
    getContractAt(
      name: "ECOx",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ECOx>;
    getContractAt(
      name: "ERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC20>;
    getContractAt(
      name: "ERC20Pausable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC20Pausable>;
    getContractAt(
      name: "ERC20Permit",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC20Permit>;
    getContractAt(
      name: "IECO",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IECO>;
    getContractAt(
      name: "InflationCheckpoints",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.InflationCheckpoints>;
    getContractAt(
      name: "TokenInit",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TokenInit>;
    getContractAt(
      name: "VoteCheckpoints",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.VoteCheckpoints>;
    getContractAt(
      name: "EcoBootstrap",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.EcoBootstrap>;
    getContractAt(
      name: "EcoFaucet",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.EcoFaucet>;
    getContractAt(
      name: "EcoInitializable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.EcoInitializable>;
    getContractAt(
      name: "Destructable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Destructable>;
    getContractAt(
      name: "EcoTestCleanup",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.EcoTestCleanup>;
    getContractAt(
      name: "ECOxStaking",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ECOxStaking>;
    getContractAt(
      name: "PolicyProposals",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PolicyProposals>;
    getContractAt(
      name: "PolicyVotes",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PolicyVotes>;
    getContractAt(
      name: "AccessRootPolicyFunds",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.AccessRootPolicyFunds>;
    getContractAt(
      name: "ElectCircuitBreaker",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ElectCircuitBreaker>;
    getContractAt(
      name: "FirstTrusteeElection",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.FirstTrusteeElection>;
    getContractAt(
      name: "IRHPUpgrade",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IRHPUpgrade>;
    getContractAt(
      name: "IRHPUpgradeAndNotifierData",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IRHPUpgradeAndNotifierData>;
    getContractAt(
      name: "LockupUpgradeAndNotifier",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.LockupUpgradeAndNotifier>;
    getContractAt(
      name: "Proposal",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Proposal>;
    getContractAt(
      name: "SingleTrusteeReplacement",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SingleTrusteeReplacement>;
    getContractAt(
      name: "TrusteeReplacement",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TrusteeReplacement>;
    getContractAt(
      name: "VoteCheckpointsUpgrade",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.VoteCheckpointsUpgrade>;
    getContractAt(
      name: "VotingPower",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.VotingPower>;
    getContractAt(
      name: "CurrencyTimer",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.CurrencyTimer>;
    getContractAt(
      name: "IGeneration",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IGeneration>;
    getContractAt(
      name: "IGenerationIncrease",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IGenerationIncrease>;
    getContractAt(
      name: "CurrencyGovernance",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.CurrencyGovernance>;
    getContractAt(
      name: "InflationRootHashProposal",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.InflationRootHashProposal>;
    getContractAt(
      name: "Lockup",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Lockup>;
    getContractAt(
      name: "RandomInflation",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.RandomInflation>;
    getContractAt(
      name: "TrustedNodes",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TrustedNodes>;
    getContractAt(
      name: "Notifier",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Notifier>;
    getContractAt(
      name: "TimedPolicies",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TimedPolicies>;
    getContractAt(
      name: "Migrations",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Migrations>;
    getContractAt(
      name: "Policed",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Policed>;
    getContractAt(
      name: "PolicedUtils",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PolicedUtils>;
    getContractAt(
      name: "Policy",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Policy>;
    getContractAt(
      name: "PolicyInit",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PolicyInit>;
    getContractAt(
      name: "ForwardProxy",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ForwardProxy>;
    getContractAt(
      name: "ForwardTarget",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ForwardTarget>;
    getContractAt(
      name: "Backdoor",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Backdoor>;
    getContractAt(
      name: "BackdoorProposal",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.BackdoorProposal>;
    getContractAt(
      name: "Empty",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Empty>;
    getContractAt(
      name: "PolicyTest",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PolicyTest>;
    getContractAt(
      name: "SampleHandler",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SampleHandler>;
    getContractAt(
      name: "SampleProposal",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SampleProposal>;
    getContractAt(
      name: "BigNum",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.BigNum>;
    getContractAt(
      name: "Cloner",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Cloner>;
    getContractAt(
      name: "DummyAMMPool",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.DummyAMMPool>;
    getContractAt(
      name: "FailingInitializeContract",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.FailingInitializeContract>;
    getContractAt(
      name: "FakeInflation",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.FakeInflation>;
    getContractAt(
      name: "FakePolicy",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.FakePolicy>;
    getContractAt(
      name: "FlashLoaner",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.FlashLoaner>;
    getContractAt(
      name: "ForwardTargetImpl",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ForwardTargetImpl>;
    getContractAt(
      name: "ImplementationUpdatingTarget",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ImplementationUpdatingTarget>;
    getContractAt(
      name: "InfiniteVote",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.InfiniteVote>;
    getContractAt(
      name: "MakeBackdoor",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.MakeBackdoor>;
    getContractAt(
      name: "MakePoodle",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.MakePoodle>;
    getContractAt(
      name: "MakeRich",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.MakeRich>;
    getContractAt(
      name: "MakeTrustedPoodles",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.MakeTrustedPoodles>;
    getContractAt(
      name: "Killable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Killable>;
    getContractAt(
      name: "MurderousPolicy",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.MurderousPolicy>;
    getContractAt(
      name: "DummyInflation",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.DummyInflation>;
    getContractAt(
      name: "DummyPoliced",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.DummyPoliced>;
    getContractAt(
      name: "DummyPolicedUtils",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.DummyPolicedUtils>;
    getContractAt(
      name: "FakeCommandAction",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.FakeCommandAction>;
    getContractAt(
      name: "FakeCommander",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.FakeCommander>;
    getContractAt(
      name: "Policer",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Policer>;
    getContractAt(
      name: "PolicyForAll",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PolicyForAll>;
    getContractAt(
      name: "PolicyTestPolicy",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PolicyTestPolicy>;
    getContractAt(
      name: "RegistrationAttemptContract",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.RegistrationAttemptContract>;
    getContractAt(
      name: "RevertingAction",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.RevertingAction>;
    getContractAt(
      name: "PoodleCurrencyGovernance",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PoodleCurrencyGovernance>;
    getContractAt(
      name: "PoodleECO",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PoodleECO>;
    getContractAt(
      name: "PoodleIRHP",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PoodleIRHP>;
    getContractAt(
      name: "PoodleLockup",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PoodleLockup>;
    getContractAt(
      name: "PoodleTrustedNodes",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PoodleTrustedNodes>;
    getContractAt(
      name: "PoodlexStaking",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PoodlexStaking>;
    getContractAt(
      name: "SampleForward",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SampleForward>;
    getContractAt(
      name: "Subvoter",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Subvoter>;
    getContractAt(
      name: "SumVerifier",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SumVerifier>;
    getContractAt(
      name: "SwitcherCurrencyTimer",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SwitcherCurrencyTimer>;
    getContractAt(
      name: "SwitcherRandomInflation",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SwitcherRandomInflation>;
    getContractAt(
      name: "SwitcherTimedPolicies",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SwitcherTimedPolicies>;
    getContractAt(
      name: "TestPolicy",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TestPolicy>;
    getContractAt(
      name: "Token",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Token>;
    getContractAt(
      name: "Token20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Token20>;
    getContractAt(
      name: "Token827",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Token827>;
    getContractAt(
      name: "TokenTarget",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TokenTarget>;
    getContractAt(
      name: "VdfCloner",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.VdfCloner>;
    getContractAt(
      name: "OZProxy",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.OZProxy>;
    getContractAt(
      name: "UpgradedWrapper",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.UpgradedWrapper>;
    getContractAt(
      name: "Wrapper",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Wrapper>;
    getContractAt(
      name: "WrapperUpgradeProposal",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.WrapperUpgradeProposal>;
    getContractAt(
      name: "IsPrime",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IsPrime>;
    getContractAt(
      name: "VDFVerifier",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.VDFVerifier>;

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