import { Adapter } from "./adapters/Adapter.js";
import type { OverridesAndLibs } from "../../types/deployer.js";
import type { BaseInstance, Instance, TypedArgs } from "../../types/adapter.js";
import type { TransactionFieldsToSave } from "../../types/tools.js";
import { ExtendedHardhatEthersSigner } from "../tools/network/ExtendedHardhatEthersSigner.js";
import { NetworkConnection } from "hardhat/types/network";
export declare class Deployer {
    constructor();
    static resolveAdapter<A, I = any>(contract: BaseInstance<A, I>): Adapter;
    connection(): NetworkConnection<"generic">;
    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;
}
//# sourceMappingURL=Deployer.d.ts.map