import { HardhatRuntimeEnvironment } from "hardhat/types";
import { Adapter } from "./adapters/Adapter";
import { OverridesAndLibs } from "../types/deployer";
import { BaseInstance, Instance, TypedArgs } from "../types/adapter";
import { TransactionFieldsToSave } from "../types/tools";
import { ExtendedHardhatEthersSigner } from "../tools/network/ExtendedHardhatEthersSigner";
export declare class Deployer {
    private _hre;
    constructor(_hre: HardhatRuntimeEnvironment);
    deploy<A, I = any>(contract: Instance<A, I>, argsOrParameters?: OverridesAndLibs | TypedArgs<A>, parameters?: OverridesAndLibs): Promise<I>;
    deployERC1967Proxy<A, I = any>(implementationFactory: Instance<A, I>, constructorCalldata: string, argsOrParameters?: OverridesAndLibs | TypedArgs<A>, parameters?: OverridesAndLibs): Promise<I>;
    deployAdminableProxy<A, I = any>(implementationFactory: Instance<A, I>, constructorCalldata: string, argsOrParameters?: OverridesAndLibs | TypedArgs<A>, parameters?: OverridesAndLibs): Promise<I>;
    deployTransparentUpgradeableProxy<A, I = any>(implementationFactory: Instance<A, I>, proxyAdmin: string, constructorCalldata: string, argsOrParameters?: OverridesAndLibs | TypedArgs<A>, parameters?: OverridesAndLibs): Promise<I>;
    deployProxy<A, I = any>(implementationFactory: Instance<A, I>, proxyFactoryName: string, proxyArgs: (implementationAddress: string) => any[], argsOrParameters?: OverridesAndLibs | TypedArgs<A>, parameters?: OverridesAndLibs): Promise<I>;
    validateConstructorCalldata<A, I = any>(implementationFactory: Instance<A, I>, parameters: OverridesAndLibs, constructorCalldata: string): Promise<void>;
    deployed<A, I = any>(contract: BaseInstance<A, I>, contractIdentifier?: string): Promise<I>;
    save<A, I = any>(contract: Instance<A, I> | string, contractAddress: string, force?: boolean): Promise<void>;
    sendNative(to: string, value: bigint, name?: string): Promise<TransactionFieldsToSave>;
    setSigner(from?: string): Promise<void>;
    getSigner(from?: string): Promise<ExtendedHardhatEthersSigner>;
    getChainId(): Promise<bigint>;
    private _buildSendTransaction;
    static resolveAdapter<A, I = any>(hre: HardhatRuntimeEnvironment, contract: BaseInstance<A, I>): Adapter;
}
//# sourceMappingURL=Deployer.d.ts.map