/* 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: "ILayerZeroEndpointV2",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ILayerZeroEndpointV2__factory>;
    getContractFactory(
      name: "ILayerZeroReceiver",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ILayerZeroReceiver__factory>;
    getContractFactory(
      name: "IMessageLib",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IMessageLib__factory>;
    getContractFactory(
      name: "IMessageLibManager",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IMessageLibManager__factory>;
    getContractFactory(
      name: "IMessagingChannel",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IMessagingChannel__factory>;
    getContractFactory(
      name: "IMessagingComposer",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IMessagingComposer__factory>;
    getContractFactory(
      name: "IMessagingContext",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IMessagingContext__factory>;
    getContractFactory(
      name: "ISendLib",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ISendLib__factory>;
    getContractFactory(
      name: "AddressCast",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.AddressCast__factory>;
    getContractFactory(
      name: "IOAppCore",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IOAppCore__factory>;
    getContractFactory(
      name: "IOAppMsgInspector",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IOAppMsgInspector__factory>;
    getContractFactory(
      name: "IOAppOptionsType3",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IOAppOptionsType3__factory>;
    getContractFactory(
      name: "IOAppReceiver",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IOAppReceiver__factory>;
    getContractFactory(
      name: "OAppOptionsType3",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.OAppOptionsType3__factory>;
    getContractFactory(
      name: "OApp",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.OApp__factory>;
    getContractFactory(
      name: "OAppCore",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.OAppCore__factory>;
    getContractFactory(
      name: "OAppReceiver",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.OAppReceiver__factory>;
    getContractFactory(
      name: "OAppSender",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.OAppSender__factory>;
    getContractFactory(
      name: "IOAppPreCrimeSimulator",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IOAppPreCrimeSimulator__factory>;
    getContractFactory(
      name: "IPreCrime",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IPreCrime__factory>;
    getContractFactory(
      name: "OAppPreCrimeSimulator",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.OAppPreCrimeSimulator__factory>;
    getContractFactory(
      name: "IOFT",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IOFT__factory>;
    getContractFactory(
      name: "OFT",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.OFT__factory>;
    getContractFactory(
      name: "OFTCore",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.OFTCore__factory>;
    getContractFactory(
      name: "Initializable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Initializable__factory>;
    getContractFactory(
      name: "UUPSUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.UUPSUpgradeable__factory>;
    getContractFactory(
      name: "ReentrancyGuardUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ReentrancyGuardUpgradeable__factory>;
    getContractFactory(
      name: "AccessControl",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.AccessControl__factory>;
    getContractFactory(
      name: "IAccessControl",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IAccessControl__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: "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: "IERC1271",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC1271__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: "IERC4906",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC4906__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: "IERC1155",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC1155__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: "ERC721",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC721__factory>;
    getContractFactory(
      name: "ERC721URIStorage",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC721URIStorage__factory>;
    getContractFactory(
      name: "IERC721Metadata",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC721Metadata__factory>;
    getContractFactory(
      name: "IERC721",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC721__factory>;
    getContractFactory(
      name: "IERC721Receiver",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC721Receiver__factory>;
    getContractFactory(
      name: "Address",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Address__factory>;
    getContractFactory(
      name: "ECDSA",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ECDSA__factory>;
    getContractFactory(
      name: "Errors",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Errors__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: "SafeCast",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SafeCast__factory>;
    getContractFactory(
      name: "Strings",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.Strings__factory>;
    getContractFactory(
      name: "ERC6551Account",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC6551Account__factory>;
    getContractFactory(
      name: "ERC6551Registry",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.ERC6551Registry__factory>;
    getContractFactory(
      name: "IERC6551AccountInitializable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC6551AccountInitializable__factory>;
    getContractFactory(
      name: "IERC6551Registry",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC6551Registry__factory>;
    getContractFactory(
      name: "IERC6551Account",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC6551Account__factory>;
    getContractFactory(
      name: "IERC6551Executable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC6551Executable__factory>;
    getContractFactory(
      name: "IERC6551Registry",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IERC6551Registry__factory>;
    getContractFactory(
      name: "IVideoPayment",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IVideoPayment__factory>;
    getContractFactory(
      name: "IPNFT",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.IPNFT__factory>;
    getContractFactory(
      name: "MockERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.MockERC20__factory>;
    getContractFactory(
      name: "SS",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SS__factory>;
    getContractFactory(
      name: "SSE",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SSE__factory>;
    getContractFactory(
      name: "SSG",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.SSG__factory>;
    getContractFactory(
      name: "TokenPurchase",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.TokenPurchase__factory>;
    getContractFactory(
      name: "VideoPayment",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.VideoPayment__factory>;
    getContractFactory(
      name: "VideoPaymentProxy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Contracts.VideoPaymentProxy__factory>;

    getContractAt(
      name: "ILayerZeroEndpointV2",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ILayerZeroEndpointV2>;
    getContractAt(
      name: "ILayerZeroReceiver",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ILayerZeroReceiver>;
    getContractAt(
      name: "IMessageLib",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IMessageLib>;
    getContractAt(
      name: "IMessageLibManager",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IMessageLibManager>;
    getContractAt(
      name: "IMessagingChannel",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IMessagingChannel>;
    getContractAt(
      name: "IMessagingComposer",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IMessagingComposer>;
    getContractAt(
      name: "IMessagingContext",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IMessagingContext>;
    getContractAt(
      name: "ISendLib",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ISendLib>;
    getContractAt(
      name: "AddressCast",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.AddressCast>;
    getContractAt(
      name: "IOAppCore",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IOAppCore>;
    getContractAt(
      name: "IOAppMsgInspector",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IOAppMsgInspector>;
    getContractAt(
      name: "IOAppOptionsType3",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IOAppOptionsType3>;
    getContractAt(
      name: "IOAppReceiver",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IOAppReceiver>;
    getContractAt(
      name: "OAppOptionsType3",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.OAppOptionsType3>;
    getContractAt(
      name: "OApp",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.OApp>;
    getContractAt(
      name: "OAppCore",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.OAppCore>;
    getContractAt(
      name: "OAppReceiver",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.OAppReceiver>;
    getContractAt(
      name: "OAppSender",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.OAppSender>;
    getContractAt(
      name: "IOAppPreCrimeSimulator",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IOAppPreCrimeSimulator>;
    getContractAt(
      name: "IPreCrime",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IPreCrime>;
    getContractAt(
      name: "OAppPreCrimeSimulator",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.OAppPreCrimeSimulator>;
    getContractAt(
      name: "IOFT",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IOFT>;
    getContractAt(
      name: "OFT",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.OFT>;
    getContractAt(
      name: "OFTCore",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.OFTCore>;
    getContractAt(
      name: "Initializable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Initializable>;
    getContractAt(
      name: "UUPSUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.UUPSUpgradeable>;
    getContractAt(
      name: "ReentrancyGuardUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ReentrancyGuardUpgradeable>;
    getContractAt(
      name: "AccessControl",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.AccessControl>;
    getContractAt(
      name: "IAccessControl",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IAccessControl>;
    getContractAt(
      name: "Ownable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Ownable>;
    getContractAt(
      name: "IERC1822Proxiable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC1822Proxiable>;
    getContractAt(
      name: "IERC1155Errors",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC1155Errors>;
    getContractAt(
      name: "IERC20Errors",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC20Errors>;
    getContractAt(
      name: "IERC721Errors",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC721Errors>;
    getContractAt(
      name: "IERC1271",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC1271>;
    getContractAt(
      name: "IERC1363",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC1363>;
    getContractAt(
      name: "IERC1967",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC1967>;
    getContractAt(
      name: "IERC4906",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC4906>;
    getContractAt(
      name: "IBeacon",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IBeacon>;
    getContractAt(
      name: "ERC1967Proxy",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC1967Proxy>;
    getContractAt(
      name: "ERC1967Utils",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC1967Utils>;
    getContractAt(
      name: "Proxy",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Proxy>;
    getContractAt(
      name: "ProxyAdmin",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ProxyAdmin>;
    getContractAt(
      name: "ITransparentUpgradeableProxy",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ITransparentUpgradeableProxy>;
    getContractAt(
      name: "TransparentUpgradeableProxy",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TransparentUpgradeableProxy>;
    getContractAt(
      name: "IERC1155",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC1155>;
    getContractAt(
      name: "ERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC20>;
    getContractAt(
      name: "IERC20Metadata",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC20Metadata>;
    getContractAt(
      name: "IERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC20>;
    getContractAt(
      name: "SafeERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SafeERC20>;
    getContractAt(
      name: "ERC721",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC721>;
    getContractAt(
      name: "ERC721URIStorage",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC721URIStorage>;
    getContractAt(
      name: "IERC721Metadata",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC721Metadata>;
    getContractAt(
      name: "IERC721",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC721>;
    getContractAt(
      name: "IERC721Receiver",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC721Receiver>;
    getContractAt(
      name: "Address",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Address>;
    getContractAt(
      name: "ECDSA",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ECDSA>;
    getContractAt(
      name: "Errors",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Errors>;
    getContractAt(
      name: "ERC165",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC165>;
    getContractAt(
      name: "IERC165",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC165>;
    getContractAt(
      name: "SafeCast",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SafeCast>;
    getContractAt(
      name: "Strings",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.Strings>;
    getContractAt(
      name: "ERC6551Account",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC6551Account>;
    getContractAt(
      name: "ERC6551Registry",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.ERC6551Registry>;
    getContractAt(
      name: "IERC6551AccountInitializable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC6551AccountInitializable>;
    getContractAt(
      name: "IERC6551Registry",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC6551Registry>;
    getContractAt(
      name: "IERC6551Account",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC6551Account>;
    getContractAt(
      name: "IERC6551Executable",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC6551Executable>;
    getContractAt(
      name: "IERC6551Registry",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IERC6551Registry>;
    getContractAt(
      name: "IVideoPayment",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IVideoPayment>;
    getContractAt(
      name: "IPNFT",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.IPNFT>;
    getContractAt(
      name: "MockERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.MockERC20>;
    getContractAt(
      name: "SS",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SS>;
    getContractAt(
      name: "SSE",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SSE>;
    getContractAt(
      name: "SSG",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.SSG>;
    getContractAt(
      name: "TokenPurchase",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.TokenPurchase>;
    getContractAt(
      name: "VideoPayment",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.VideoPayment>;
    getContractAt(
      name: "VideoPaymentProxy",
      address: string,
      signer?: ethers.Signer
    ): Promise<Contracts.VideoPaymentProxy>;

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