import type { Interface } from '@ethersproject/abi'; import type { Signer } from '@ethersproject/abstract-signer'; import type { BaseContract } from '@ethersproject/contracts'; import type { Provider } from '@ethersproject/providers'; import type { BaseRegistrarImplementation } from '../generated/BaseRegistrarImplementation'; import type { BulkRenewal } from '../generated/BulkRenewal'; import type { DNSRegistrar } from '../generated/DNSRegistrar'; import type { FNSRegistry } from '../generated/FNSRegistry'; import type { FTMRegistrarController } from '../generated/FTMRegistrarController'; import type { Multicall } from '../generated/Multicall'; import type { NameWrapper } from '../generated/NameWrapper'; import type { PublicResolver } from '../generated/PublicResolver'; import type { ReverseRegistrar } from '../generated/ReverseRegistrar'; import type { UniversalResolver } from '../generated/UniversalResolver'; import { ContractAddressFetch } from './getContractAddress'; declare type BaseFactory = { readonly abi: object; createInterface(): Interface; connect(address: string, signerOrProvider: Signer | Provider): BaseContract; }; export default class ContractManager { private provider; private fetchAddress; protected getModule: (name: string) => Promise; constructor(provider: Provider, fetchAddress: ContractAddressFetch, getModule?: (name: string) => Promise); private generateContractGetter; getPublicResolver: (passedProvider?: any, address?: string) => Promise; getUniversalResolver: (passedProvider?: any, address?: string) => Promise; getRegistry: (passedProvider?: any, address?: string) => Promise; getReverseRegistrar: (passedProvider?: any, address?: string) => Promise; getNameWrapper: (passedProvider?: any, address?: string) => Promise; getDNSRegistrar: (passedProvider?: any, address?: string) => Promise; getBaseRegistrar: (passedProvider?: any, address?: string) => Promise; getFtmRegistrarController: (passedProvider?: any, address?: string) => Promise; getMulticall: (passedProvider?: any, address?: string) => Promise; getBulkRenewal: (passedProvider?: any, address?: string) => Promise; } export {};