import { ethers } from 'ethers';
import { HardhatEthersHelpers, FactoryOptions } from '@nomiclabs/hardhat-ethers/types';
import { LinkTokenInterface } from './LinkTokenInterface.js';
import { VRFConsumerBase } from './VRFConsumerBase.js';
import { AccessControlEnumerableUpgradeable } from './AccessControlEnumerableUpgradeable.js';
import { AccessControlUpgradeable } from './AccessControlUpgradeable.js';
import { IAccessControlEnumerableUpgradeable } from './IAccessControlEnumerableUpgradeable.js';
import { IAccessControlUpgradeable } from './IAccessControlUpgradeable.js';
import { GovernorCountingSimpleUpgradeable } from './GovernorCountingSimpleUpgradeable.js';
import { GovernorSettingsUpgradeable } from './GovernorSettingsUpgradeable.js';
import { GovernorVotesQuorumFractionUpgradeable } from './GovernorVotesQuorumFractionUpgradeable.js';
import { GovernorVotesUpgradeable } from './GovernorVotesUpgradeable.js';
import { GovernorUpgradeable } from './GovernorUpgradeable.js';
import { IGovernorUpgradeable } from './IGovernorUpgradeable.js';
import { IVotesUpgradeable } from './IVotesUpgradeable.js';
import { IERC2981Upgradeable } from './IERC2981Upgradeable.js';
import { PausableUpgradeable } from './PausableUpgradeable.js';
import { ERC1155Upgradeable } from './ERC1155Upgradeable.js';
import { ERC1155BurnableUpgradeable } from './ERC1155BurnableUpgradeable.js';
import { ERC1155PausableUpgradeable } from './ERC1155PausableUpgradeable.js';
import { IERC1155MetadataURIUpgradeable } from './IERC1155MetadataURIUpgradeable.js';
import { IERC1155ReceiverUpgradeable } from './IERC1155ReceiverUpgradeable.js';
import { IERC1155Upgradeable } from './IERC1155Upgradeable.js';
import { ERC1155HolderUpgradeable } from './ERC1155HolderUpgradeable.js';
import { ERC1155ReceiverUpgradeable } from './ERC1155ReceiverUpgradeable.js';
import { ERC20Upgradeable } from './ERC20Upgradeable.js';
import { ERC20PermitUpgradeable } from './ERC20PermitUpgradeable.js';
import { IERC20PermitUpgradeable } from './IERC20PermitUpgradeable.js';
import { ERC20BurnableUpgradeable } from './ERC20BurnableUpgradeable.js';
import { ERC20PausableUpgradeable } from './ERC20PausableUpgradeable.js';
import { ERC20VotesUpgradeable } from './ERC20VotesUpgradeable.js';
import { IERC20MetadataUpgradeable } from './IERC20MetadataUpgradeable.js';
import { IERC20Upgradeable } from './IERC20Upgradeable.js';
import { ERC721Upgradeable } from './ERC721Upgradeable.js';
import { ERC721EnumerableUpgradeable } from './ERC721EnumerableUpgradeable.js';
import { IERC721EnumerableUpgradeable } from './IERC721EnumerableUpgradeable.js';
import { IERC721MetadataUpgradeable } from './IERC721MetadataUpgradeable.js';
import { IERC721ReceiverUpgradeable } from './IERC721ReceiverUpgradeable.js';
import { IERC721Upgradeable } from './IERC721Upgradeable.js';
import { ERC721HolderUpgradeable } from './ERC721HolderUpgradeable.js';
import { ERC165Upgradeable } from './ERC165Upgradeable.js';
import { IERC165Upgradeable } from './IERC165Upgradeable.js';
import { MulticallUpgradeable } from './MulticallUpgradeable.js';
import { AccessControl } from './AccessControl.js';
import { AccessControlEnumerable } from './AccessControlEnumerable.js';
import { IAccessControl } from './IAccessControl.js';
import { IAccessControlEnumerable } from './IAccessControlEnumerable.js';
import { ERC2771Context } from './ERC2771Context.js';
import { MinimalForwarder } from './MinimalForwarder.js';
import { Proxy } from './Proxy.js';
import { IERC1155 } from './IERC1155.js';
import { IERC20 } from './IERC20.js';
import { IERC721 } from './IERC721.js';
import { ERC165 } from './ERC165.js';
import { IERC165 } from './IERC165.js';
import { Multicall } from './Multicall.js';
import { ByocFactory } from './ByocFactory.js';
import { ByocRegistry } from './ByocRegistry.js';
import { DropERC1155 } from './DropERC1155.js';
import { DropERC20 } from './DropERC20.js';
import { DropERC721 } from './DropERC721.js';
import { Forwarder } from './Forwarder.js';
import { IDropERC1155 } from './IDropERC1155.js';
import { IDropERC20 } from './IDropERC20.js';
import { IDropERC721 } from './IDropERC721.js';
import { IByocFactory } from './IByocFactory.js';
import { IByocRegistry } from './IByocRegistry.js';
import { IMultiwrap } from './IMultiwrap.js';
import { IPack } from './IPack.js';
import { IThirdwebContract } from './IThirdwebContract.js';
import { IThirdwebOwnable } from './IThirdwebOwnable.js';
import { IThirdwebPlatformFee } from './IThirdwebPlatformFee.js';
import { IThirdwebPrimarySale } from './IThirdwebPrimarySale.js';
import { IThirdwebRoyalty } from './IThirdwebRoyalty.js';
import { ITWFee } from './ITWFee.js';
import { IWETH } from './IWETH.js';
import { IMarketplace } from './IMarketplace.js';
import { ITokenERC1155 } from './ITokenERC1155.js';
import { ITokenERC20 } from './ITokenERC20.js';
import { ITokenERC721 } from './ITokenERC721.js';
import { CurrencyTransferLib } from './CurrencyTransferLib.js';
import { Marketplace } from './Marketplace.js';
import { Mock } from './Mock.js';
import { MockContract } from './MockContract.js';
import { Multiwrap } from './Multiwrap.js';
import { ERC1155PresetUpgradeable } from './ERC1155PresetUpgradeable.js';
import { PaymentSplitterUpgradeable } from './PaymentSplitterUpgradeable.js';
import { ERC2771ContextUpgradeable } from './ERC2771ContextUpgradeable.js';
import { Pack } from './Pack.js';
import { Split } from './Split.js';
import { ThirdwebContract } from './ThirdwebContract.js';
import { TokenERC1155 } from './TokenERC1155.js';
import { TokenERC20 } from './TokenERC20.js';
import { TokenERC721 } from './TokenERC721.js';
import { TWFactory } from './TWFactory.js';
import { IFeeTierPlacementExtension } from './IFeeTierPlacementExtension.js';
import { TWFee } from './TWFee.js';
import { TWProxy } from './TWProxy.js';
import { TWRegistry } from './TWRegistry.js';
import { VoteERC20 } from './VoteERC20.js';
import { LinkTokenInterface__factory } from './factories/LinkTokenInterface__factory.js';
import { VRFConsumerBase__factory } from './factories/VRFConsumerBase__factory.js';
import { AccessControlEnumerableUpgradeable__factory } from './factories/AccessControlEnumerableUpgradeable__factory.js';
import { AccessControlUpgradeable__factory } from './factories/AccessControlUpgradeable__factory.js';
import { IAccessControlEnumerableUpgradeable__factory } from './factories/IAccessControlEnumerableUpgradeable__factory.js';
import { IAccessControlUpgradeable__factory } from './factories/IAccessControlUpgradeable__factory.js';
import { GovernorCountingSimpleUpgradeable__factory } from './factories/GovernorCountingSimpleUpgradeable__factory.js';
import { GovernorSettingsUpgradeable__factory } from './factories/GovernorSettingsUpgradeable__factory.js';
import { GovernorVotesQuorumFractionUpgradeable__factory } from './factories/GovernorVotesQuorumFractionUpgradeable__factory.js';
import { GovernorVotesUpgradeable__factory } from './factories/GovernorVotesUpgradeable__factory.js';
import { GovernorUpgradeable__factory } from './factories/GovernorUpgradeable__factory.js';
import { IGovernorUpgradeable__factory } from './factories/IGovernorUpgradeable__factory.js';
import { IVotesUpgradeable__factory } from './factories/IVotesUpgradeable__factory.js';
import { IERC2981Upgradeable__factory } from './factories/IERC2981Upgradeable__factory.js';
import { PausableUpgradeable__factory } from './factories/PausableUpgradeable__factory.js';
import { ERC1155Upgradeable__factory } from './factories/ERC1155Upgradeable__factory.js';
import { ERC1155BurnableUpgradeable__factory } from './factories/ERC1155BurnableUpgradeable__factory.js';
import { ERC1155PausableUpgradeable__factory } from './factories/ERC1155PausableUpgradeable__factory.js';
import { IERC1155MetadataURIUpgradeable__factory } from './factories/IERC1155MetadataURIUpgradeable__factory.js';
import { IERC1155ReceiverUpgradeable__factory } from './factories/IERC1155ReceiverUpgradeable__factory.js';
import { IERC1155Upgradeable__factory } from './factories/IERC1155Upgradeable__factory.js';
import { ERC1155HolderUpgradeable__factory } from './factories/ERC1155HolderUpgradeable__factory.js';
import { ERC1155ReceiverUpgradeable__factory } from './factories/ERC1155ReceiverUpgradeable__factory.js';
import { ERC20Upgradeable__factory } from './factories/ERC20Upgradeable__factory.js';
import { ERC20PermitUpgradeable__factory } from './factories/ERC20PermitUpgradeable__factory.js';
import { IERC20PermitUpgradeable__factory } from './factories/IERC20PermitUpgradeable__factory.js';
import { ERC20BurnableUpgradeable__factory } from './factories/ERC20BurnableUpgradeable__factory.js';
import { ERC20PausableUpgradeable__factory } from './factories/ERC20PausableUpgradeable__factory.js';
import { ERC20VotesUpgradeable__factory } from './factories/ERC20VotesUpgradeable__factory.js';
import { IERC20MetadataUpgradeable__factory } from './factories/IERC20MetadataUpgradeable__factory.js';
import { IERC20Upgradeable__factory } from './factories/IERC20Upgradeable__factory.js';
import { ERC721Upgradeable__factory } from './factories/ERC721Upgradeable__factory.js';
import { ERC721EnumerableUpgradeable__factory } from './factories/ERC721EnumerableUpgradeable__factory.js';
import { IERC721EnumerableUpgradeable__factory } from './factories/IERC721EnumerableUpgradeable__factory.js';
import { IERC721MetadataUpgradeable__factory } from './factories/IERC721MetadataUpgradeable__factory.js';
import { IERC721ReceiverUpgradeable__factory } from './factories/IERC721ReceiverUpgradeable__factory.js';
import { IERC721Upgradeable__factory } from './factories/IERC721Upgradeable__factory.js';
import { ERC721HolderUpgradeable__factory } from './factories/ERC721HolderUpgradeable__factory.js';
import { ERC165Upgradeable__factory } from './factories/ERC165Upgradeable__factory.js';
import { IERC165Upgradeable__factory } from './factories/IERC165Upgradeable__factory.js';
import { MulticallUpgradeable__factory } from './factories/MulticallUpgradeable__factory.js';
import { AccessControl__factory } from './factories/AccessControl__factory.js';
import { AccessControlEnumerable__factory } from './factories/AccessControlEnumerable__factory.js';
import { IAccessControl__factory } from './factories/IAccessControl__factory.js';
import { IAccessControlEnumerable__factory } from './factories/IAccessControlEnumerable__factory.js';
import { ERC2771Context__factory } from './factories/ERC2771Context__factory.js';
import { MinimalForwarder__factory } from './factories/MinimalForwarder__factory.js';
import { Proxy__factory } from './factories/Proxy__factory.js';
import { IERC1155__factory } from './factories/IERC1155__factory.js';
import { IERC20__factory } from './factories/IERC20__factory.js';
import { IERC721__factory } from './factories/IERC721__factory.js';
import { ERC165__factory } from './factories/ERC165__factory.js';
import { IERC165__factory } from './factories/IERC165__factory.js';
import { Multicall__factory } from './factories/Multicall__factory.js';
import { ByocFactory__factory } from './factories/ByocFactory__factory.js';
import { ByocRegistry__factory } from './factories/ByocRegistry__factory.js';
import { DropERC1155__factory } from './factories/DropERC1155__factory.js';
import { DropERC20__factory } from './factories/DropERC20__factory.js';
import { DropERC721__factory } from './factories/DropERC721__factory.js';
import { Forwarder__factory } from './factories/Forwarder__factory.js';
import { IDropERC1155__factory } from './factories/IDropERC1155__factory.js';
import { IDropERC20__factory } from './factories/IDropERC20__factory.js';
import { IDropERC721__factory } from './factories/IDropERC721__factory.js';
import { IByocFactory__factory } from './factories/IByocFactory__factory.js';
import { IByocRegistry__factory } from './factories/IByocRegistry__factory.js';
import { IMultiwrap__factory } from './factories/IMultiwrap__factory.js';
import { IPack__factory } from './factories/IPack__factory.js';
import { IThirdwebContract__factory } from './factories/IThirdwebContract__factory.js';
import { IThirdwebOwnable__factory } from './factories/IThirdwebOwnable__factory.js';
import { IThirdwebPlatformFee__factory } from './factories/IThirdwebPlatformFee__factory.js';
import { IThirdwebPrimarySale__factory } from './factories/IThirdwebPrimarySale__factory.js';
import { IThirdwebRoyalty__factory } from './factories/IThirdwebRoyalty__factory.js';
import { ITWFee__factory } from './factories/ITWFee__factory.js';
import { IWETH__factory } from './factories/IWETH__factory.js';
import { IMarketplace__factory } from './factories/IMarketplace__factory.js';
import { ITokenERC1155__factory } from './factories/ITokenERC1155__factory.js';
import { ITokenERC20__factory } from './factories/ITokenERC20__factory.js';
import { ITokenERC721__factory } from './factories/ITokenERC721__factory.js';
import { CurrencyTransferLib__factory } from './factories/CurrencyTransferLib__factory.js';
import { Marketplace__factory } from './factories/Marketplace__factory.js';
import { Mock__factory } from './factories/Mock__factory.js';
import { MockContract__factory } from './factories/MockContract__factory.js';
import { Multiwrap__factory } from './factories/Multiwrap__factory.js';
import { ERC1155PresetUpgradeable__factory } from './factories/ERC1155PresetUpgradeable__factory.js';
import { PaymentSplitterUpgradeable__factory } from './factories/PaymentSplitterUpgradeable__factory.js';
import { ERC2771ContextUpgradeable__factory } from './factories/ERC2771ContextUpgradeable__factory.js';
import { Pack__factory } from './factories/Pack__factory.js';
import { Split__factory } from './factories/Split__factory.js';
import { ThirdwebContract__factory } from './factories/ThirdwebContract__factory.js';
import { TokenERC1155__factory } from './factories/TokenERC1155__factory.js';
import { TokenERC20__factory } from './factories/TokenERC20__factory.js';
import { TokenERC721__factory } from './factories/TokenERC721__factory.js';
import { TWFactory__factory } from './factories/TWFactory__factory.js';
import { IFeeTierPlacementExtension__factory } from './factories/IFeeTierPlacementExtension__factory.js';
import { TWFee__factory } from './factories/TWFee__factory.js';
import { TWProxy__factory } from './factories/TWProxy__factory.js';
import { TWRegistry__factory } from './factories/TWRegistry__factory.js';
import { VoteERC20__factory } from './factories/VoteERC20__factory.js';
import '@ethersproject/abi';
import '@ethersproject/providers';
import './common.js';

/* Autogenerated file. Do not edit manually. */


declare module "hardhat/types/runtime" {
  interface HardhatEthersHelpers extends HardhatEthersHelpers {
    getContractFactory(
      name: "LinkTokenInterface",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<LinkTokenInterface__factory>;
    getContractFactory(
      name: "VRFConsumerBase",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<VRFConsumerBase__factory>;
    getContractFactory(
      name: "AccessControlEnumerableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<AccessControlEnumerableUpgradeable__factory>;
    getContractFactory(
      name: "AccessControlUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<AccessControlUpgradeable__factory>;
    getContractFactory(
      name: "IAccessControlEnumerableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IAccessControlEnumerableUpgradeable__factory>;
    getContractFactory(
      name: "IAccessControlUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IAccessControlUpgradeable__factory>;
    getContractFactory(
      name: "GovernorCountingSimpleUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<GovernorCountingSimpleUpgradeable__factory>;
    getContractFactory(
      name: "GovernorSettingsUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<GovernorSettingsUpgradeable__factory>;
    getContractFactory(
      name: "GovernorVotesQuorumFractionUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<GovernorVotesQuorumFractionUpgradeable__factory>;
    getContractFactory(
      name: "GovernorVotesUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<GovernorVotesUpgradeable__factory>;
    getContractFactory(
      name: "GovernorUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<GovernorUpgradeable__factory>;
    getContractFactory(
      name: "IGovernorUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IGovernorUpgradeable__factory>;
    getContractFactory(
      name: "IVotesUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IVotesUpgradeable__factory>;
    getContractFactory(
      name: "IERC2981Upgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC2981Upgradeable__factory>;
    getContractFactory(
      name: "PausableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<PausableUpgradeable__factory>;
    getContractFactory(
      name: "ERC1155Upgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC1155Upgradeable__factory>;
    getContractFactory(
      name: "ERC1155BurnableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC1155BurnableUpgradeable__factory>;
    getContractFactory(
      name: "ERC1155PausableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC1155PausableUpgradeable__factory>;
    getContractFactory(
      name: "IERC1155MetadataURIUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC1155MetadataURIUpgradeable__factory>;
    getContractFactory(
      name: "IERC1155ReceiverUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC1155ReceiverUpgradeable__factory>;
    getContractFactory(
      name: "IERC1155Upgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC1155Upgradeable__factory>;
    getContractFactory(
      name: "ERC1155HolderUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC1155HolderUpgradeable__factory>;
    getContractFactory(
      name: "ERC1155ReceiverUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC1155ReceiverUpgradeable__factory>;
    getContractFactory(
      name: "ERC20Upgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC20Upgradeable__factory>;
    getContractFactory(
      name: "ERC20PermitUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC20PermitUpgradeable__factory>;
    getContractFactory(
      name: "IERC20PermitUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC20PermitUpgradeable__factory>;
    getContractFactory(
      name: "ERC20BurnableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC20BurnableUpgradeable__factory>;
    getContractFactory(
      name: "ERC20PausableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC20PausableUpgradeable__factory>;
    getContractFactory(
      name: "ERC20VotesUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC20VotesUpgradeable__factory>;
    getContractFactory(
      name: "IERC20MetadataUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC20MetadataUpgradeable__factory>;
    getContractFactory(
      name: "IERC20Upgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC20Upgradeable__factory>;
    getContractFactory(
      name: "ERC721Upgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC721Upgradeable__factory>;
    getContractFactory(
      name: "ERC721EnumerableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC721EnumerableUpgradeable__factory>;
    getContractFactory(
      name: "IERC721EnumerableUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC721EnumerableUpgradeable__factory>;
    getContractFactory(
      name: "IERC721MetadataUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC721MetadataUpgradeable__factory>;
    getContractFactory(
      name: "IERC721ReceiverUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC721ReceiverUpgradeable__factory>;
    getContractFactory(
      name: "IERC721Upgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC721Upgradeable__factory>;
    getContractFactory(
      name: "ERC721HolderUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC721HolderUpgradeable__factory>;
    getContractFactory(
      name: "ERC165Upgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC165Upgradeable__factory>;
    getContractFactory(
      name: "IERC165Upgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC165Upgradeable__factory>;
    getContractFactory(
      name: "MulticallUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<MulticallUpgradeable__factory>;
    getContractFactory(
      name: "AccessControl",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<AccessControl__factory>;
    getContractFactory(
      name: "AccessControlEnumerable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<AccessControlEnumerable__factory>;
    getContractFactory(
      name: "IAccessControl",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IAccessControl__factory>;
    getContractFactory(
      name: "IAccessControlEnumerable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IAccessControlEnumerable__factory>;
    getContractFactory(
      name: "ERC2771Context",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC2771Context__factory>;
    getContractFactory(
      name: "MinimalForwarder",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<MinimalForwarder__factory>;
    getContractFactory(
      name: "Proxy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Proxy__factory>;
    getContractFactory(
      name: "IERC1155",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC1155__factory>;
    getContractFactory(
      name: "IERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC20__factory>;
    getContractFactory(
      name: "IERC721",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC721__factory>;
    getContractFactory(
      name: "ERC165",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC165__factory>;
    getContractFactory(
      name: "IERC165",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IERC165__factory>;
    getContractFactory(
      name: "Multicall",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Multicall__factory>;
    getContractFactory(
      name: "ByocFactory",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ByocFactory__factory>;
    getContractFactory(
      name: "ByocRegistry",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ByocRegistry__factory>;
    getContractFactory(
      name: "DropERC1155",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<DropERC1155__factory>;
    getContractFactory(
      name: "DropERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<DropERC20__factory>;
    getContractFactory(
      name: "DropERC721",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<DropERC721__factory>;
    getContractFactory(
      name: "Forwarder",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Forwarder__factory>;
    getContractFactory(
      name: "IDropERC1155",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IDropERC1155__factory>;
    getContractFactory(
      name: "IDropERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IDropERC20__factory>;
    getContractFactory(
      name: "IDropERC721",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IDropERC721__factory>;
    getContractFactory(
      name: "IByocFactory",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IByocFactory__factory>;
    getContractFactory(
      name: "IByocRegistry",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IByocRegistry__factory>;
    getContractFactory(
      name: "IMultiwrap",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IMultiwrap__factory>;
    getContractFactory(
      name: "IPack",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IPack__factory>;
    getContractFactory(
      name: "IThirdwebContract",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IThirdwebContract__factory>;
    getContractFactory(
      name: "IThirdwebOwnable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IThirdwebOwnable__factory>;
    getContractFactory(
      name: "IThirdwebPlatformFee",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IThirdwebPlatformFee__factory>;
    getContractFactory(
      name: "IThirdwebPrimarySale",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IThirdwebPrimarySale__factory>;
    getContractFactory(
      name: "IThirdwebRoyalty",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IThirdwebRoyalty__factory>;
    getContractFactory(
      name: "ITWFee",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ITWFee__factory>;
    getContractFactory(
      name: "IWETH",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IWETH__factory>;
    getContractFactory(
      name: "IMarketplace",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IMarketplace__factory>;
    getContractFactory(
      name: "ITokenERC1155",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ITokenERC1155__factory>;
    getContractFactory(
      name: "ITokenERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ITokenERC20__factory>;
    getContractFactory(
      name: "ITokenERC721",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ITokenERC721__factory>;
    getContractFactory(
      name: "CurrencyTransferLib",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<CurrencyTransferLib__factory>;
    getContractFactory(
      name: "Marketplace",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Marketplace__factory>;
    getContractFactory(
      name: "Mock",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Mock__factory>;
    getContractFactory(
      name: "MockContract",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<MockContract__factory>;
    getContractFactory(
      name: "Multiwrap",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Multiwrap__factory>;
    getContractFactory(
      name: "ERC1155PresetUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC1155PresetUpgradeable__factory>;
    getContractFactory(
      name: "PaymentSplitterUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<PaymentSplitterUpgradeable__factory>;
    getContractFactory(
      name: "ERC2771Context",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC2771Context__factory>;
    getContractFactory(
      name: "ERC2771ContextUpgradeable",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ERC2771ContextUpgradeable__factory>;
    getContractFactory(
      name: "Pack",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Pack__factory>;
    getContractFactory(
      name: "Split",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<Split__factory>;
    getContractFactory(
      name: "ThirdwebContract",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<ThirdwebContract__factory>;
    getContractFactory(
      name: "TokenERC1155",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<TokenERC1155__factory>;
    getContractFactory(
      name: "TokenERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<TokenERC20__factory>;
    getContractFactory(
      name: "TokenERC721",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<TokenERC721__factory>;
    getContractFactory(
      name: "TWFactory",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<TWFactory__factory>;
    getContractFactory(
      name: "IFeeTierPlacementExtension",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<IFeeTierPlacementExtension__factory>;
    getContractFactory(
      name: "TWFee",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<TWFee__factory>;
    getContractFactory(
      name: "TWProxy",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<TWProxy__factory>;
    getContractFactory(
      name: "TWRegistry",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<TWRegistry__factory>;
    getContractFactory(
      name: "VoteERC20",
      signerOrOptions?: ethers.Signer | FactoryOptions
    ): Promise<VoteERC20__factory>;

    getContractAt(
      name: "LinkTokenInterface",
      address: string,
      signer?: ethers.Signer
    ): Promise<LinkTokenInterface>;
    getContractAt(
      name: "VRFConsumerBase",
      address: string,
      signer?: ethers.Signer
    ): Promise<VRFConsumerBase>;
    getContractAt(
      name: "AccessControlEnumerableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<AccessControlEnumerableUpgradeable>;
    getContractAt(
      name: "AccessControlUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<AccessControlUpgradeable>;
    getContractAt(
      name: "IAccessControlEnumerableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IAccessControlEnumerableUpgradeable>;
    getContractAt(
      name: "IAccessControlUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IAccessControlUpgradeable>;
    getContractAt(
      name: "GovernorCountingSimpleUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<GovernorCountingSimpleUpgradeable>;
    getContractAt(
      name: "GovernorSettingsUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<GovernorSettingsUpgradeable>;
    getContractAt(
      name: "GovernorVotesQuorumFractionUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<GovernorVotesQuorumFractionUpgradeable>;
    getContractAt(
      name: "GovernorVotesUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<GovernorVotesUpgradeable>;
    getContractAt(
      name: "GovernorUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<GovernorUpgradeable>;
    getContractAt(
      name: "IGovernorUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IGovernorUpgradeable>;
    getContractAt(
      name: "IVotesUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IVotesUpgradeable>;
    getContractAt(
      name: "IERC2981Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC2981Upgradeable>;
    getContractAt(
      name: "PausableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<PausableUpgradeable>;
    getContractAt(
      name: "ERC1155Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC1155Upgradeable>;
    getContractAt(
      name: "ERC1155BurnableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC1155BurnableUpgradeable>;
    getContractAt(
      name: "ERC1155PausableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC1155PausableUpgradeable>;
    getContractAt(
      name: "IERC1155MetadataURIUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC1155MetadataURIUpgradeable>;
    getContractAt(
      name: "IERC1155ReceiverUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC1155ReceiverUpgradeable>;
    getContractAt(
      name: "IERC1155Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC1155Upgradeable>;
    getContractAt(
      name: "ERC1155HolderUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC1155HolderUpgradeable>;
    getContractAt(
      name: "ERC1155ReceiverUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC1155ReceiverUpgradeable>;
    getContractAt(
      name: "ERC20Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC20Upgradeable>;
    getContractAt(
      name: "ERC20PermitUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC20PermitUpgradeable>;
    getContractAt(
      name: "IERC20PermitUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC20PermitUpgradeable>;
    getContractAt(
      name: "ERC20BurnableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC20BurnableUpgradeable>;
    getContractAt(
      name: "ERC20PausableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC20PausableUpgradeable>;
    getContractAt(
      name: "ERC20VotesUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC20VotesUpgradeable>;
    getContractAt(
      name: "IERC20MetadataUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC20MetadataUpgradeable>;
    getContractAt(
      name: "IERC20Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC20Upgradeable>;
    getContractAt(
      name: "ERC721Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC721Upgradeable>;
    getContractAt(
      name: "ERC721EnumerableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC721EnumerableUpgradeable>;
    getContractAt(
      name: "IERC721EnumerableUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC721EnumerableUpgradeable>;
    getContractAt(
      name: "IERC721MetadataUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC721MetadataUpgradeable>;
    getContractAt(
      name: "IERC721ReceiverUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC721ReceiverUpgradeable>;
    getContractAt(
      name: "IERC721Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC721Upgradeable>;
    getContractAt(
      name: "ERC721HolderUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC721HolderUpgradeable>;
    getContractAt(
      name: "ERC165Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC165Upgradeable>;
    getContractAt(
      name: "IERC165Upgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC165Upgradeable>;
    getContractAt(
      name: "MulticallUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<MulticallUpgradeable>;
    getContractAt(
      name: "AccessControl",
      address: string,
      signer?: ethers.Signer
    ): Promise<AccessControl>;
    getContractAt(
      name: "AccessControlEnumerable",
      address: string,
      signer?: ethers.Signer
    ): Promise<AccessControlEnumerable>;
    getContractAt(
      name: "IAccessControl",
      address: string,
      signer?: ethers.Signer
    ): Promise<IAccessControl>;
    getContractAt(
      name: "IAccessControlEnumerable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IAccessControlEnumerable>;
    getContractAt(
      name: "ERC2771Context",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC2771Context>;
    getContractAt(
      name: "MinimalForwarder",
      address: string,
      signer?: ethers.Signer
    ): Promise<MinimalForwarder>;
    getContractAt(
      name: "Proxy",
      address: string,
      signer?: ethers.Signer
    ): Promise<Proxy>;
    getContractAt(
      name: "IERC1155",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC1155>;
    getContractAt(
      name: "IERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC20>;
    getContractAt(
      name: "IERC721",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC721>;
    getContractAt(
      name: "ERC165",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC165>;
    getContractAt(
      name: "IERC165",
      address: string,
      signer?: ethers.Signer
    ): Promise<IERC165>;
    getContractAt(
      name: "Multicall",
      address: string,
      signer?: ethers.Signer
    ): Promise<Multicall>;
    getContractAt(
      name: "ByocFactory",
      address: string,
      signer?: ethers.Signer
    ): Promise<ByocFactory>;
    getContractAt(
      name: "ByocRegistry",
      address: string,
      signer?: ethers.Signer
    ): Promise<ByocRegistry>;
    getContractAt(
      name: "DropERC1155",
      address: string,
      signer?: ethers.Signer
    ): Promise<DropERC1155>;
    getContractAt(
      name: "DropERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<DropERC20>;
    getContractAt(
      name: "DropERC721",
      address: string,
      signer?: ethers.Signer
    ): Promise<DropERC721>;
    getContractAt(
      name: "Forwarder",
      address: string,
      signer?: ethers.Signer
    ): Promise<Forwarder>;
    getContractAt(
      name: "IDropERC1155",
      address: string,
      signer?: ethers.Signer
    ): Promise<IDropERC1155>;
    getContractAt(
      name: "IDropERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<IDropERC20>;
    getContractAt(
      name: "IDropERC721",
      address: string,
      signer?: ethers.Signer
    ): Promise<IDropERC721>;
    getContractAt(
      name: "IByocFactory",
      address: string,
      signer?: ethers.Signer
    ): Promise<IByocFactory>;
    getContractAt(
      name: "IByocRegistry",
      address: string,
      signer?: ethers.Signer
    ): Promise<IByocRegistry>;
    getContractAt(
      name: "IMultiwrap",
      address: string,
      signer?: ethers.Signer
    ): Promise<IMultiwrap>;
    getContractAt(
      name: "IPack",
      address: string,
      signer?: ethers.Signer
    ): Promise<IPack>;
    getContractAt(
      name: "IThirdwebContract",
      address: string,
      signer?: ethers.Signer
    ): Promise<IThirdwebContract>;
    getContractAt(
      name: "IThirdwebOwnable",
      address: string,
      signer?: ethers.Signer
    ): Promise<IThirdwebOwnable>;
    getContractAt(
      name: "IThirdwebPlatformFee",
      address: string,
      signer?: ethers.Signer
    ): Promise<IThirdwebPlatformFee>;
    getContractAt(
      name: "IThirdwebPrimarySale",
      address: string,
      signer?: ethers.Signer
    ): Promise<IThirdwebPrimarySale>;
    getContractAt(
      name: "IThirdwebRoyalty",
      address: string,
      signer?: ethers.Signer
    ): Promise<IThirdwebRoyalty>;
    getContractAt(
      name: "ITWFee",
      address: string,
      signer?: ethers.Signer
    ): Promise<ITWFee>;
    getContractAt(
      name: "IWETH",
      address: string,
      signer?: ethers.Signer
    ): Promise<IWETH>;
    getContractAt(
      name: "IMarketplace",
      address: string,
      signer?: ethers.Signer
    ): Promise<IMarketplace>;
    getContractAt(
      name: "ITokenERC1155",
      address: string,
      signer?: ethers.Signer
    ): Promise<ITokenERC1155>;
    getContractAt(
      name: "ITokenERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<ITokenERC20>;
    getContractAt(
      name: "ITokenERC721",
      address: string,
      signer?: ethers.Signer
    ): Promise<ITokenERC721>;
    getContractAt(
      name: "CurrencyTransferLib",
      address: string,
      signer?: ethers.Signer
    ): Promise<CurrencyTransferLib>;
    getContractAt(
      name: "Marketplace",
      address: string,
      signer?: ethers.Signer
    ): Promise<Marketplace>;
    getContractAt(
      name: "Mock",
      address: string,
      signer?: ethers.Signer
    ): Promise<Mock>;
    getContractAt(
      name: "MockContract",
      address: string,
      signer?: ethers.Signer
    ): Promise<MockContract>;
    getContractAt(
      name: "Multiwrap",
      address: string,
      signer?: ethers.Signer
    ): Promise<Multiwrap>;
    getContractAt(
      name: "ERC1155PresetUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC1155PresetUpgradeable>;
    getContractAt(
      name: "PaymentSplitterUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<PaymentSplitterUpgradeable>;
    getContractAt(
      name: "ERC2771Context",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC2771Context>;
    getContractAt(
      name: "ERC2771ContextUpgradeable",
      address: string,
      signer?: ethers.Signer
    ): Promise<ERC2771ContextUpgradeable>;
    getContractAt(
      name: "Pack",
      address: string,
      signer?: ethers.Signer
    ): Promise<Pack>;
    getContractAt(
      name: "Split",
      address: string,
      signer?: ethers.Signer
    ): Promise<Split>;
    getContractAt(
      name: "ThirdwebContract",
      address: string,
      signer?: ethers.Signer
    ): Promise<ThirdwebContract>;
    getContractAt(
      name: "TokenERC1155",
      address: string,
      signer?: ethers.Signer
    ): Promise<TokenERC1155>;
    getContractAt(
      name: "TokenERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<TokenERC20>;
    getContractAt(
      name: "TokenERC721",
      address: string,
      signer?: ethers.Signer
    ): Promise<TokenERC721>;
    getContractAt(
      name: "TWFactory",
      address: string,
      signer?: ethers.Signer
    ): Promise<TWFactory>;
    getContractAt(
      name: "IFeeTierPlacementExtension",
      address: string,
      signer?: ethers.Signer
    ): Promise<IFeeTierPlacementExtension>;
    getContractAt(
      name: "TWFee",
      address: string,
      signer?: ethers.Signer
    ): Promise<TWFee>;
    getContractAt(
      name: "TWProxy",
      address: string,
      signer?: ethers.Signer
    ): Promise<TWProxy>;
    getContractAt(
      name: "TWRegistry",
      address: string,
      signer?: ethers.Signer
    ): Promise<TWRegistry>;
    getContractAt(
      name: "VoteERC20",
      address: string,
      signer?: ethers.Signer
    ): Promise<VoteERC20>;

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