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

import { ethers } from 'ethers'
import {
  DeployContractOptions,
  FactoryOptions,
  HardhatEthersHelpers as HardhatEthersHelpersBase,
} from '@nomicfoundation/hardhat-ethers/types'

import * as Contracts from '.'

declare module 'hardhat/types/runtime' {
  interface HardhatEthersHelpers extends HardhatEthersHelpersBase {
    getContractFactory(
      name: 'IGraphToken',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IGraphToken__factory>
    getContractFactory(
      name: 'GraphUpgradeable',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.GraphUpgradeable__factory>
    getContractFactory(
      name: 'IGraphProxy',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IGraphProxy__factory>
    getContractFactory(
      name: 'ITokenGateway',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.ITokenGateway__factory>
    getContractFactory(
      name: 'ICuration',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.ICuration__factory>
    getContractFactory(
      name: 'IEpochManager',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IEpochManager__factory>
    getContractFactory(
      name: 'IController',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IController__factory>
    getContractFactory(
      name: 'IGoverned',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IGoverned__factory>
    getContractFactory(
      name: 'IManaged',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IManaged__factory>
    getContractFactory(
      name: 'IRewardsIssuer',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IRewardsIssuer__factory>
    getContractFactory(
      name: 'IRewardsManager',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IRewardsManager__factory>
    getContractFactory(
      name: 'IGraphProxy',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IGraphProxy__factory>
    getContractFactory(
      name: 'IGraphProxyAdmin',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IGraphProxyAdmin__factory>
    getContractFactory(
      name: 'IDataService',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IDataService__factory>
    getContractFactory(
      name: 'IDataServiceFees',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IDataServiceFees__factory>
    getContractFactory(
      name: 'IDataServicePausable',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IDataServicePausable__factory>
    getContractFactory(
      name: 'IDataServiceRescuable',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IDataServiceRescuable__factory>
    getContractFactory(
      name: 'IAuthorizable',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IAuthorizable__factory>
    getContractFactory(
      name: 'IGraphPayments',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IGraphPayments__factory>
    getContractFactory(
      name: 'IGraphTallyCollector',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IGraphTallyCollector__factory>
    getContractFactory(
      name: 'IHorizonStaking',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IHorizonStaking__factory>
    getContractFactory(
      name: 'IHorizonStakingBase',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IHorizonStakingBase__factory>
    getContractFactory(
      name: 'IHorizonStakingExtension',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IHorizonStakingExtension__factory>
    getContractFactory(
      name: 'IHorizonStakingMain',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IHorizonStakingMain__factory>
    getContractFactory(
      name: 'ILinkedList',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.ILinkedList__factory>
    getContractFactory(
      name: 'IPaymentsCollector',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IPaymentsCollector__factory>
    getContractFactory(
      name: 'IPaymentsEscrow',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IPaymentsEscrow__factory>
    getContractFactory(
      name: 'Initializable',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.Initializable__factory>
    getContractFactory(
      name: 'ContextUpgradeable',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.ContextUpgradeable__factory>
    getContractFactory(
      name: 'MulticallUpgradeable',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.MulticallUpgradeable__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: 'IERC1155Errors',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IERC1155Errors__factory>
    getContractFactory(
      name: 'IERC20Errors',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IERC20Errors__factory>
    getContractFactory(
      name: 'IERC721Errors',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IERC721Errors__factory>
    getContractFactory(
      name: 'IERC1363',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IERC1363__factory>
    getContractFactory(
      name: 'IERC1967',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IERC1967__factory>
    getContractFactory(
      name: 'IERC5267',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IERC5267__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: 'ERC1967Utils',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.ERC1967Utils__factory>
    getContractFactory(
      name: 'Proxy',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.Proxy__factory>
    getContractFactory(
      name: 'ProxyAdmin',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.ProxyAdmin__factory>
    getContractFactory(
      name: 'ITransparentUpgradeableProxy',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.ITransparentUpgradeableProxy__factory>
    getContractFactory(
      name: 'TransparentUpgradeableProxy',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.TransparentUpgradeableProxy__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: 'SafeERC20',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.SafeERC20__factory>
    getContractFactory(
      name: 'Address',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.Address__factory>
    getContractFactory(
      name: 'ECDSA',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.ECDSA__factory>
    getContractFactory(
      name: 'EIP712',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.EIP712__factory>
    getContractFactory(
      name: 'Errors',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.Errors__factory>
    getContractFactory(
      name: 'IERC165',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.IERC165__factory>
    getContractFactory(
      name: 'SafeCast',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.SafeCast__factory>
    getContractFactory(
      name: 'Multicall',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.Multicall__factory>
    getContractFactory(
      name: 'Pausable',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.Pausable__factory>
    getContractFactory(
      name: 'ShortStrings',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.ShortStrings__factory>
    getContractFactory(
      name: 'Strings',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.Strings__factory>
    getContractFactory(
      name: 'DataService',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.DataService__factory>
    getContractFactory(
      name: 'DataServiceFees',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.DataServiceFees__factory>
    getContractFactory(
      name: 'DataServiceFeesV1Storage',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.DataServiceFeesV1Storage__factory>
    getContractFactory(
      name: 'DataServicePausable',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.DataServicePausable__factory>
    getContractFactory(
      name: 'DataServicePausableUpgradeable',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.DataServicePausableUpgradeable__factory>
    getContractFactory(
      name: 'DataServiceRescuable',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.DataServiceRescuable__factory>
    getContractFactory(
      name: 'ProvisionTracker',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.ProvisionTracker__factory>
    getContractFactory(
      name: 'ProvisionManager',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.ProvisionManager__factory>
    getContractFactory(
      name: 'PPMMath',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.PPMMath__factory>
    getContractFactory(
      name: 'ControllerMock',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.ControllerMock__factory>
    getContractFactory(
      name: 'CurationMock',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.CurationMock__factory>
    getContractFactory(
      name: 'EpochManagerMock',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.EpochManagerMock__factory>
    getContractFactory(
      name: 'MockGRTToken',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.MockGRTToken__factory>
    getContractFactory(
      name: 'RewardsManagerMock',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.RewardsManagerMock__factory>
    getContractFactory(
      name: 'GraphTallyCollector',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.GraphTallyCollector__factory>
    getContractFactory(
      name: 'GraphPayments',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.GraphPayments__factory>
    getContractFactory(
      name: 'PaymentsEscrow',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.PaymentsEscrow__factory>
    getContractFactory(
      name: 'HorizonStaking',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.HorizonStaking__factory>
    getContractFactory(
      name: 'HorizonStakingBase',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.HorizonStakingBase__factory>
    getContractFactory(
      name: 'HorizonStakingExtension',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.HorizonStakingExtension__factory>
    getContractFactory(
      name: 'ExponentialRebates',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.ExponentialRebates__factory>
    getContractFactory(
      name: 'Managed',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.Managed__factory>
    getContractFactory(
      name: 'Authorizable',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.Authorizable__factory>
    getContractFactory(
      name: 'GraphDirectory',
      signerOrOptions?: ethers.Signer | FactoryOptions,
    ): Promise<Contracts.GraphDirectory__factory>

    getContractAt(
      name: 'IGraphToken',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IGraphToken>
    getContractAt(
      name: 'GraphUpgradeable',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.GraphUpgradeable>
    getContractAt(
      name: 'IGraphProxy',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IGraphProxy>
    getContractAt(
      name: 'ITokenGateway',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.ITokenGateway>
    getContractAt(
      name: 'ICuration',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.ICuration>
    getContractAt(
      name: 'IEpochManager',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IEpochManager>
    getContractAt(
      name: 'IController',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IController>
    getContractAt(
      name: 'IGoverned',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IGoverned>
    getContractAt(
      name: 'IManaged',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IManaged>
    getContractAt(
      name: 'IRewardsIssuer',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IRewardsIssuer>
    getContractAt(
      name: 'IRewardsManager',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IRewardsManager>
    getContractAt(
      name: 'IGraphProxy',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IGraphProxy>
    getContractAt(
      name: 'IGraphProxyAdmin',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IGraphProxyAdmin>
    getContractAt(
      name: 'IDataService',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IDataService>
    getContractAt(
      name: 'IDataServiceFees',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IDataServiceFees>
    getContractAt(
      name: 'IDataServicePausable',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IDataServicePausable>
    getContractAt(
      name: 'IDataServiceRescuable',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IDataServiceRescuable>
    getContractAt(
      name: 'IAuthorizable',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IAuthorizable>
    getContractAt(
      name: 'IGraphPayments',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IGraphPayments>
    getContractAt(
      name: 'IGraphTallyCollector',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IGraphTallyCollector>
    getContractAt(
      name: 'IHorizonStaking',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IHorizonStaking>
    getContractAt(
      name: 'IHorizonStakingBase',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IHorizonStakingBase>
    getContractAt(
      name: 'IHorizonStakingExtension',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IHorizonStakingExtension>
    getContractAt(
      name: 'IHorizonStakingMain',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IHorizonStakingMain>
    getContractAt(
      name: 'ILinkedList',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.ILinkedList>
    getContractAt(
      name: 'IPaymentsCollector',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IPaymentsCollector>
    getContractAt(
      name: 'IPaymentsEscrow',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IPaymentsEscrow>
    getContractAt(
      name: 'Initializable',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.Initializable>
    getContractAt(
      name: 'ContextUpgradeable',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.ContextUpgradeable>
    getContractAt(
      name: 'MulticallUpgradeable',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.MulticallUpgradeable>
    getContractAt(
      name: 'PausableUpgradeable',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.PausableUpgradeable>
    getContractAt(
      name: 'Ownable',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.Ownable>
    getContractAt(
      name: 'IERC1155Errors',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IERC1155Errors>
    getContractAt(
      name: 'IERC20Errors',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IERC20Errors>
    getContractAt(
      name: 'IERC721Errors',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IERC721Errors>
    getContractAt(
      name: 'IERC1363',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IERC1363>
    getContractAt(
      name: 'IERC1967',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IERC1967>
    getContractAt(
      name: 'IERC5267',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IERC5267>
    getContractAt(
      name: 'IBeacon',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IBeacon>
    getContractAt(
      name: 'ERC1967Proxy',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.ERC1967Proxy>
    getContractAt(
      name: 'ERC1967Utils',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.ERC1967Utils>
    getContractAt(name: 'Proxy', address: string | ethers.Addressable, signer?: ethers.Signer): Promise<Contracts.Proxy>
    getContractAt(
      name: 'ProxyAdmin',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.ProxyAdmin>
    getContractAt(
      name: 'ITransparentUpgradeableProxy',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.ITransparentUpgradeableProxy>
    getContractAt(
      name: 'TransparentUpgradeableProxy',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.TransparentUpgradeableProxy>
    getContractAt(name: 'ERC20', address: string | ethers.Addressable, signer?: ethers.Signer): Promise<Contracts.ERC20>
    getContractAt(
      name: 'IERC20Metadata',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IERC20Metadata>
    getContractAt(
      name: 'IERC20',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IERC20>
    getContractAt(
      name: 'SafeERC20',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.SafeERC20>
    getContractAt(
      name: 'Address',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.Address>
    getContractAt(name: 'ECDSA', address: string | ethers.Addressable, signer?: ethers.Signer): Promise<Contracts.ECDSA>
    getContractAt(
      name: 'EIP712',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.EIP712>
    getContractAt(
      name: 'Errors',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.Errors>
    getContractAt(
      name: 'IERC165',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.IERC165>
    getContractAt(
      name: 'SafeCast',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.SafeCast>
    getContractAt(
      name: 'Multicall',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.Multicall>
    getContractAt(
      name: 'Pausable',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.Pausable>
    getContractAt(
      name: 'ShortStrings',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.ShortStrings>
    getContractAt(
      name: 'Strings',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.Strings>
    getContractAt(
      name: 'DataService',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.DataService>
    getContractAt(
      name: 'DataServiceFees',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.DataServiceFees>
    getContractAt(
      name: 'DataServiceFeesV1Storage',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.DataServiceFeesV1Storage>
    getContractAt(
      name: 'DataServicePausable',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.DataServicePausable>
    getContractAt(
      name: 'DataServicePausableUpgradeable',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.DataServicePausableUpgradeable>
    getContractAt(
      name: 'DataServiceRescuable',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.DataServiceRescuable>
    getContractAt(
      name: 'ProvisionTracker',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.ProvisionTracker>
    getContractAt(
      name: 'ProvisionManager',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.ProvisionManager>
    getContractAt(
      name: 'PPMMath',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.PPMMath>
    getContractAt(
      name: 'ControllerMock',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.ControllerMock>
    getContractAt(
      name: 'CurationMock',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.CurationMock>
    getContractAt(
      name: 'EpochManagerMock',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.EpochManagerMock>
    getContractAt(
      name: 'MockGRTToken',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.MockGRTToken>
    getContractAt(
      name: 'RewardsManagerMock',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.RewardsManagerMock>
    getContractAt(
      name: 'GraphTallyCollector',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.GraphTallyCollector>
    getContractAt(
      name: 'GraphPayments',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.GraphPayments>
    getContractAt(
      name: 'PaymentsEscrow',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.PaymentsEscrow>
    getContractAt(
      name: 'HorizonStaking',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.HorizonStaking>
    getContractAt(
      name: 'HorizonStakingBase',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.HorizonStakingBase>
    getContractAt(
      name: 'HorizonStakingExtension',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.HorizonStakingExtension>
    getContractAt(
      name: 'ExponentialRebates',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.ExponentialRebates>
    getContractAt(
      name: 'Managed',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.Managed>
    getContractAt(
      name: 'Authorizable',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.Authorizable>
    getContractAt(
      name: 'GraphDirectory',
      address: string | ethers.Addressable,
      signer?: ethers.Signer,
    ): Promise<Contracts.GraphDirectory>

    deployContract(
      name: 'IGraphToken',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IGraphToken>
    deployContract(
      name: 'GraphUpgradeable',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.GraphUpgradeable>
    deployContract(
      name: 'IGraphProxy',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IGraphProxy>
    deployContract(
      name: 'ITokenGateway',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ITokenGateway>
    deployContract(
      name: 'ICuration',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ICuration>
    deployContract(
      name: 'IEpochManager',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IEpochManager>
    deployContract(
      name: 'IController',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IController>
    deployContract(
      name: 'IGoverned',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IGoverned>
    deployContract(
      name: 'IManaged',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IManaged>
    deployContract(
      name: 'IRewardsIssuer',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IRewardsIssuer>
    deployContract(
      name: 'IRewardsManager',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IRewardsManager>
    deployContract(
      name: 'IGraphProxy',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IGraphProxy>
    deployContract(
      name: 'IGraphProxyAdmin',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IGraphProxyAdmin>
    deployContract(
      name: 'IDataService',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IDataService>
    deployContract(
      name: 'IDataServiceFees',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IDataServiceFees>
    deployContract(
      name: 'IDataServicePausable',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IDataServicePausable>
    deployContract(
      name: 'IDataServiceRescuable',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IDataServiceRescuable>
    deployContract(
      name: 'IAuthorizable',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IAuthorizable>
    deployContract(
      name: 'IGraphPayments',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IGraphPayments>
    deployContract(
      name: 'IGraphTallyCollector',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IGraphTallyCollector>
    deployContract(
      name: 'IHorizonStaking',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IHorizonStaking>
    deployContract(
      name: 'IHorizonStakingBase',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IHorizonStakingBase>
    deployContract(
      name: 'IHorizonStakingExtension',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IHorizonStakingExtension>
    deployContract(
      name: 'IHorizonStakingMain',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IHorizonStakingMain>
    deployContract(
      name: 'ILinkedList',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ILinkedList>
    deployContract(
      name: 'IPaymentsCollector',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IPaymentsCollector>
    deployContract(
      name: 'IPaymentsEscrow',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IPaymentsEscrow>
    deployContract(
      name: 'Initializable',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.Initializable>
    deployContract(
      name: 'ContextUpgradeable',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ContextUpgradeable>
    deployContract(
      name: 'MulticallUpgradeable',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.MulticallUpgradeable>
    deployContract(
      name: 'PausableUpgradeable',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.PausableUpgradeable>
    deployContract(name: 'Ownable', signerOrOptions?: ethers.Signer | DeployContractOptions): Promise<Contracts.Ownable>
    deployContract(
      name: 'IERC1155Errors',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IERC1155Errors>
    deployContract(
      name: 'IERC20Errors',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IERC20Errors>
    deployContract(
      name: 'IERC721Errors',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IERC721Errors>
    deployContract(
      name: 'IERC1363',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IERC1363>
    deployContract(
      name: 'IERC1967',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IERC1967>
    deployContract(
      name: 'IERC5267',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IERC5267>
    deployContract(name: 'IBeacon', signerOrOptions?: ethers.Signer | DeployContractOptions): Promise<Contracts.IBeacon>
    deployContract(
      name: 'ERC1967Proxy',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ERC1967Proxy>
    deployContract(
      name: 'ERC1967Utils',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ERC1967Utils>
    deployContract(name: 'Proxy', signerOrOptions?: ethers.Signer | DeployContractOptions): Promise<Contracts.Proxy>
    deployContract(
      name: 'ProxyAdmin',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ProxyAdmin>
    deployContract(
      name: 'ITransparentUpgradeableProxy',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ITransparentUpgradeableProxy>
    deployContract(
      name: 'TransparentUpgradeableProxy',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.TransparentUpgradeableProxy>
    deployContract(name: 'ERC20', signerOrOptions?: ethers.Signer | DeployContractOptions): Promise<Contracts.ERC20>
    deployContract(
      name: 'IERC20Metadata',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IERC20Metadata>
    deployContract(name: 'IERC20', signerOrOptions?: ethers.Signer | DeployContractOptions): Promise<Contracts.IERC20>
    deployContract(
      name: 'SafeERC20',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.SafeERC20>
    deployContract(name: 'Address', signerOrOptions?: ethers.Signer | DeployContractOptions): Promise<Contracts.Address>
    deployContract(name: 'ECDSA', signerOrOptions?: ethers.Signer | DeployContractOptions): Promise<Contracts.ECDSA>
    deployContract(name: 'EIP712', signerOrOptions?: ethers.Signer | DeployContractOptions): Promise<Contracts.EIP712>
    deployContract(name: 'Errors', signerOrOptions?: ethers.Signer | DeployContractOptions): Promise<Contracts.Errors>
    deployContract(name: 'IERC165', signerOrOptions?: ethers.Signer | DeployContractOptions): Promise<Contracts.IERC165>
    deployContract(
      name: 'SafeCast',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.SafeCast>
    deployContract(
      name: 'Multicall',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.Multicall>
    deployContract(
      name: 'Pausable',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.Pausable>
    deployContract(
      name: 'ShortStrings',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ShortStrings>
    deployContract(name: 'Strings', signerOrOptions?: ethers.Signer | DeployContractOptions): Promise<Contracts.Strings>
    deployContract(
      name: 'DataService',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.DataService>
    deployContract(
      name: 'DataServiceFees',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.DataServiceFees>
    deployContract(
      name: 'DataServiceFeesV1Storage',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.DataServiceFeesV1Storage>
    deployContract(
      name: 'DataServicePausable',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.DataServicePausable>
    deployContract(
      name: 'DataServicePausableUpgradeable',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.DataServicePausableUpgradeable>
    deployContract(
      name: 'DataServiceRescuable',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.DataServiceRescuable>
    deployContract(
      name: 'ProvisionTracker',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ProvisionTracker>
    deployContract(
      name: 'ProvisionManager',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ProvisionManager>
    deployContract(name: 'PPMMath', signerOrOptions?: ethers.Signer | DeployContractOptions): Promise<Contracts.PPMMath>
    deployContract(
      name: 'ControllerMock',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ControllerMock>
    deployContract(
      name: 'CurationMock',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.CurationMock>
    deployContract(
      name: 'EpochManagerMock',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.EpochManagerMock>
    deployContract(
      name: 'MockGRTToken',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.MockGRTToken>
    deployContract(
      name: 'RewardsManagerMock',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.RewardsManagerMock>
    deployContract(
      name: 'GraphTallyCollector',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.GraphTallyCollector>
    deployContract(
      name: 'GraphPayments',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.GraphPayments>
    deployContract(
      name: 'PaymentsEscrow',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.PaymentsEscrow>
    deployContract(
      name: 'HorizonStaking',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.HorizonStaking>
    deployContract(
      name: 'HorizonStakingBase',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.HorizonStakingBase>
    deployContract(
      name: 'HorizonStakingExtension',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.HorizonStakingExtension>
    deployContract(
      name: 'ExponentialRebates',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ExponentialRebates>
    deployContract(name: 'Managed', signerOrOptions?: ethers.Signer | DeployContractOptions): Promise<Contracts.Managed>
    deployContract(
      name: 'Authorizable',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.Authorizable>
    deployContract(
      name: 'GraphDirectory',
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.GraphDirectory>

    deployContract(
      name: 'IGraphToken',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IGraphToken>
    deployContract(
      name: 'GraphUpgradeable',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.GraphUpgradeable>
    deployContract(
      name: 'IGraphProxy',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IGraphProxy>
    deployContract(
      name: 'ITokenGateway',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ITokenGateway>
    deployContract(
      name: 'ICuration',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ICuration>
    deployContract(
      name: 'IEpochManager',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IEpochManager>
    deployContract(
      name: 'IController',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IController>
    deployContract(
      name: 'IGoverned',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IGoverned>
    deployContract(
      name: 'IManaged',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IManaged>
    deployContract(
      name: 'IRewardsIssuer',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IRewardsIssuer>
    deployContract(
      name: 'IRewardsManager',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IRewardsManager>
    deployContract(
      name: 'IGraphProxy',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IGraphProxy>
    deployContract(
      name: 'IGraphProxyAdmin',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IGraphProxyAdmin>
    deployContract(
      name: 'IDataService',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IDataService>
    deployContract(
      name: 'IDataServiceFees',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IDataServiceFees>
    deployContract(
      name: 'IDataServicePausable',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IDataServicePausable>
    deployContract(
      name: 'IDataServiceRescuable',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IDataServiceRescuable>
    deployContract(
      name: 'IAuthorizable',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IAuthorizable>
    deployContract(
      name: 'IGraphPayments',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IGraphPayments>
    deployContract(
      name: 'IGraphTallyCollector',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IGraphTallyCollector>
    deployContract(
      name: 'IHorizonStaking',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IHorizonStaking>
    deployContract(
      name: 'IHorizonStakingBase',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IHorizonStakingBase>
    deployContract(
      name: 'IHorizonStakingExtension',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IHorizonStakingExtension>
    deployContract(
      name: 'IHorizonStakingMain',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IHorizonStakingMain>
    deployContract(
      name: 'ILinkedList',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ILinkedList>
    deployContract(
      name: 'IPaymentsCollector',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IPaymentsCollector>
    deployContract(
      name: 'IPaymentsEscrow',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IPaymentsEscrow>
    deployContract(
      name: 'Initializable',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.Initializable>
    deployContract(
      name: 'ContextUpgradeable',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ContextUpgradeable>
    deployContract(
      name: 'MulticallUpgradeable',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.MulticallUpgradeable>
    deployContract(
      name: 'PausableUpgradeable',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.PausableUpgradeable>
    deployContract(
      name: 'Ownable',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.Ownable>
    deployContract(
      name: 'IERC1155Errors',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IERC1155Errors>
    deployContract(
      name: 'IERC20Errors',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IERC20Errors>
    deployContract(
      name: 'IERC721Errors',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IERC721Errors>
    deployContract(
      name: 'IERC1363',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IERC1363>
    deployContract(
      name: 'IERC1967',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IERC1967>
    deployContract(
      name: 'IERC5267',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IERC5267>
    deployContract(
      name: 'IBeacon',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IBeacon>
    deployContract(
      name: 'ERC1967Proxy',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ERC1967Proxy>
    deployContract(
      name: 'ERC1967Utils',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ERC1967Utils>
    deployContract(
      name: 'Proxy',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.Proxy>
    deployContract(
      name: 'ProxyAdmin',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ProxyAdmin>
    deployContract(
      name: 'ITransparentUpgradeableProxy',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ITransparentUpgradeableProxy>
    deployContract(
      name: 'TransparentUpgradeableProxy',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.TransparentUpgradeableProxy>
    deployContract(
      name: 'ERC20',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ERC20>
    deployContract(
      name: 'IERC20Metadata',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IERC20Metadata>
    deployContract(
      name: 'IERC20',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IERC20>
    deployContract(
      name: 'SafeERC20',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.SafeERC20>
    deployContract(
      name: 'Address',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.Address>
    deployContract(
      name: 'ECDSA',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ECDSA>
    deployContract(
      name: 'EIP712',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.EIP712>
    deployContract(
      name: 'Errors',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.Errors>
    deployContract(
      name: 'IERC165',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.IERC165>
    deployContract(
      name: 'SafeCast',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.SafeCast>
    deployContract(
      name: 'Multicall',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.Multicall>
    deployContract(
      name: 'Pausable',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.Pausable>
    deployContract(
      name: 'ShortStrings',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ShortStrings>
    deployContract(
      name: 'Strings',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.Strings>
    deployContract(
      name: 'DataService',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.DataService>
    deployContract(
      name: 'DataServiceFees',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.DataServiceFees>
    deployContract(
      name: 'DataServiceFeesV1Storage',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.DataServiceFeesV1Storage>
    deployContract(
      name: 'DataServicePausable',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.DataServicePausable>
    deployContract(
      name: 'DataServicePausableUpgradeable',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.DataServicePausableUpgradeable>
    deployContract(
      name: 'DataServiceRescuable',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.DataServiceRescuable>
    deployContract(
      name: 'ProvisionTracker',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ProvisionTracker>
    deployContract(
      name: 'ProvisionManager',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ProvisionManager>
    deployContract(
      name: 'PPMMath',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.PPMMath>
    deployContract(
      name: 'ControllerMock',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ControllerMock>
    deployContract(
      name: 'CurationMock',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.CurationMock>
    deployContract(
      name: 'EpochManagerMock',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.EpochManagerMock>
    deployContract(
      name: 'MockGRTToken',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.MockGRTToken>
    deployContract(
      name: 'RewardsManagerMock',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.RewardsManagerMock>
    deployContract(
      name: 'GraphTallyCollector',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.GraphTallyCollector>
    deployContract(
      name: 'GraphPayments',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.GraphPayments>
    deployContract(
      name: 'PaymentsEscrow',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.PaymentsEscrow>
    deployContract(
      name: 'HorizonStaking',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.HorizonStaking>
    deployContract(
      name: 'HorizonStakingBase',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.HorizonStakingBase>
    deployContract(
      name: 'HorizonStakingExtension',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.HorizonStakingExtension>
    deployContract(
      name: 'ExponentialRebates',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.ExponentialRebates>
    deployContract(
      name: 'Managed',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.Managed>
    deployContract(
      name: 'Authorizable',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.Authorizable>
    deployContract(
      name: 'GraphDirectory',
      args: any[],
      signerOrOptions?: ethers.Signer | DeployContractOptions,
    ): Promise<Contracts.GraphDirectory>

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