import type { ContractReturnType, DeployContractConfig, GetContractAtConfig, GetTransactionReturnType, SendDeploymentTransactionConfig } from "../types.js";
import type { ArtifactManager, StringWithArtifactContractNamesAutocompletion } from "hardhat/types/artifacts";
import type { ChainDescriptorsConfig } from "hardhat/types/config";
import type { EthereumProvider } from "hardhat/types/providers";
import type { Address as ViemAddress } from "viem";
export declare function deployContract<ContractName extends StringWithArtifactContractNamesAutocompletion>(provider: EthereumProvider, artifactManager: ArtifactManager, chainDescriptors: ChainDescriptorsConfig, networkName: string, contractName: ContractName, constructorArgs?: readonly unknown[], deployContractConfig?: DeployContractConfig): Promise<ContractReturnType<ContractName>>;
export declare function sendDeploymentTransaction<ContractName extends StringWithArtifactContractNamesAutocompletion>(provider: EthereumProvider, artifactManager: ArtifactManager, chainDescriptors: ChainDescriptorsConfig, networkName: string, contractName: ContractName, constructorArgs?: readonly unknown[], sendDeploymentTransactionConfig?: SendDeploymentTransactionConfig): Promise<{
    contract: ContractReturnType<ContractName>;
    deploymentTransaction: GetTransactionReturnType;
}>;
export declare function getContractAt<ContractName extends StringWithArtifactContractNamesAutocompletion>(provider: EthereumProvider, artifactManager: ArtifactManager, chainDescriptors: ChainDescriptorsConfig, networkName: string, contractName: ContractName, address: ViemAddress, getContractAtConfig?: GetContractAtConfig): Promise<ContractReturnType<ContractName>>;
//# sourceMappingURL=contracts.d.ts.map