import type { HardhatRuntimeEnvironment } from 'hardhat/types/hre';
import type { NetworkConnection } from 'hardhat/types/network';
import type { StringWithArtifactContractNamesAutocompletion } from 'hardhat/types/artifacts';
import type { ContractReturnType } from '@nomicfoundation/hardhat-viem/types';
import type { ForceImportOptions } from './options.js';
import { ContractAddressOrInstance } from './utils.js';
/**
 * If the imported address is a beacon, the returned instance is its UpgradeableBeacon
 * contract (an `UpgradeableBeaconContract`) rather than an instance of the named contract,
 * like the ethers-based API.
 */
export type ForceImportFunction = <ContractName extends StringWithArtifactContractNamesAutocompletion>(addressOrInstance: ContractAddressOrInstance, contractName: ContractName, opts?: ForceImportOptions) => Promise<ContractReturnType<ContractName>>;
export declare function makeForceImport(hre: HardhatRuntimeEnvironment, connection: NetworkConnection): ForceImportFunction;
//# sourceMappingURL=force-import.d.ts.map