/* 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: "IPoS",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IPoS__factory>;
    getContractFactory(
      name: "IRewardManager",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IRewardManager__factory>;
    getContractFactory(
      name: "IStaking",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IStaking__factory>;
    getContractFactory(
      name: "IWorkerManagerAuthManager",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IWorkerManagerAuthManager__factory>;
    getContractFactory(
      name: "AggregatorInterface",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.AggregatorInterface__factory>;
    getContractFactory(
      name: "ENS",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ENS__factory>;
    getContractFactory(
      name: "NameResolver",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.NameResolver__factory>;
    getContractFactory(
      name: "ReverseRegistrar",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ReverseRegistrar__factory>;
    getContractFactory(
      name: "Controllable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Controllable__factory>;
    getContractFactory(
      name: "OwnableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.OwnableUpgradeable__factory>;
    getContractFactory(
      name: "PausableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PausableUpgradeable__factory>;
    getContractFactory(
      name: "Ownable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Ownable__factory>;
    getContractFactory(
      name: "Pausable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Pausable__factory>;
    getContractFactory(
      name: "IERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC20__factory>;
    getContractFactory(
      name: "FlatRateCommission",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.FlatRateCommission__factory>;
    getContractFactory(
      name: "GasTaxCommission",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.GasTaxCommission__factory>;
    getContractFactory(
      name: "Fee",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Fee__factory>;
    getContractFactory(
      name: "StakingPool",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.StakingPool__factory>;
    getContractFactory(
      name: "StakingPoolFactory",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.StakingPoolFactory__factory>;
    getContractFactory(
      name: "StakingPoolManagement",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.StakingPoolManagement__factory>;
    getContractFactory(
      name: "StakingPoolProducer",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.StakingPoolProducer__factory>;
    getContractFactory(
      name: "StakingPoolStaking",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.StakingPoolStaking__factory>;
    getContractFactory(
      name: "StakingPoolUser",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.StakingPoolUser__factory>;
    getContractFactory(
      name: "StakingPoolWorker",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.StakingPoolWorker__factory>;
    getContractFactory(
      name: "ChainlinkGasOracle",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ChainlinkGasOracle__factory>;
    getContractFactory(
      name: "ChainlinkPriceOracle",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ChainlinkPriceOracle__factory>;
    getContractFactory(
      name: "GasOracle",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.GasOracle__factory>;
    getContractFactory(
      name: "PriceOracle",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.PriceOracle__factory>;
    getContractFactory(
      name: "StakingPoolData",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.StakingPoolData__factory>;
    getContractFactory(
      name: "StakingPoolFactoryImpl",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.StakingPoolFactoryImpl__factory>;
    getContractFactory(
      name: "StakingPoolImpl",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.StakingPoolImpl__factory>;
    getContractFactory(
      name: "StakingPoolManagementImpl",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.StakingPoolManagementImpl__factory>;
    getContractFactory(
      name: "StakingPoolProducerImpl",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.StakingPoolProducerImpl__factory>;
    getContractFactory(
      name: "StakingPoolStakingImpl",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.StakingPoolStakingImpl__factory>;
    getContractFactory(
      name: "StakingPoolUserImpl",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.StakingPoolUserImpl__factory>;
    getContractFactory(
      name: "StakingPoolWorkerImpl",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.StakingPoolWorkerImpl__factory>;
    getContractFactory(
      name: "CloneMaker",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.CloneMaker__factory>;
    getContractFactory(
      name: "MockAggregator",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MockAggregator__factory>;

    getContractAt(
      name: "IPoS",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IPoS>;
    getContractAt(
      name: "IRewardManager",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IRewardManager>;
    getContractAt(
      name: "IStaking",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IStaking>;
    getContractAt(
      name: "IWorkerManagerAuthManager",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IWorkerManagerAuthManager>;
    getContractAt(
      name: "AggregatorInterface",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.AggregatorInterface>;
    getContractAt(
      name: "ENS",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ENS>;
    getContractAt(
      name: "NameResolver",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.NameResolver>;
    getContractAt(
      name: "ReverseRegistrar",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ReverseRegistrar>;
    getContractAt(
      name: "Controllable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Controllable>;
    getContractAt(
      name: "OwnableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.OwnableUpgradeable>;
    getContractAt(
      name: "PausableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PausableUpgradeable>;
    getContractAt(
      name: "Ownable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Ownable>;
    getContractAt(
      name: "Pausable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Pausable>;
    getContractAt(
      name: "IERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC20>;
    getContractAt(
      name: "FlatRateCommission",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.FlatRateCommission>;
    getContractAt(
      name: "GasTaxCommission",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.GasTaxCommission>;
    getContractAt(
      name: "Fee",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Fee>;
    getContractAt(
      name: "StakingPool",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.StakingPool>;
    getContractAt(
      name: "StakingPoolFactory",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.StakingPoolFactory>;
    getContractAt(
      name: "StakingPoolManagement",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.StakingPoolManagement>;
    getContractAt(
      name: "StakingPoolProducer",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.StakingPoolProducer>;
    getContractAt(
      name: "StakingPoolStaking",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.StakingPoolStaking>;
    getContractAt(
      name: "StakingPoolUser",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.StakingPoolUser>;
    getContractAt(
      name: "StakingPoolWorker",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.StakingPoolWorker>;
    getContractAt(
      name: "ChainlinkGasOracle",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ChainlinkGasOracle>;
    getContractAt(
      name: "ChainlinkPriceOracle",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ChainlinkPriceOracle>;
    getContractAt(
      name: "GasOracle",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.GasOracle>;
    getContractAt(
      name: "PriceOracle",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.PriceOracle>;
    getContractAt(
      name: "StakingPoolData",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.StakingPoolData>;
    getContractAt(
      name: "StakingPoolFactoryImpl",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.StakingPoolFactoryImpl>;
    getContractAt(
      name: "StakingPoolImpl",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.StakingPoolImpl>;
    getContractAt(
      name: "StakingPoolManagementImpl",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.StakingPoolManagementImpl>;
    getContractAt(
      name: "StakingPoolProducerImpl",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.StakingPoolProducerImpl>;
    getContractAt(
      name: "StakingPoolStakingImpl",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.StakingPoolStakingImpl>;
    getContractAt(
      name: "StakingPoolUserImpl",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.StakingPoolUserImpl>;
    getContractAt(
      name: "StakingPoolWorkerImpl",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.StakingPoolWorkerImpl>;
    getContractAt(
      name: "CloneMaker",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.CloneMaker>;
    getContractAt(
      name: "MockAggregator",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.MockAggregator>;

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