import { Interface } from "ethers";
import { HardhatRuntimeEnvironment } from "hardhat/types";
import { MinimalContract } from "../MinimalContract";
import { BaseInstance, Instance } from "../../types/adapter";
import { OverridesAndLibs, OverridesAndName } from "../../types/deployer";
export declare abstract class Adapter {
    protected _hre: HardhatRuntimeEnvironment;
    constructor(_hre: HardhatRuntimeEnvironment);
    abstract fromInstance<A, I>(instance: Instance<A, I>, parameters: OverridesAndName): Promise<MinimalContract>;
    abstract toInstance<A, I>(instance: BaseInstance<A, I>, address: string, parameters: OverridesAndLibs): Promise<I>;
    abstract getInterface<A, I>(instance: BaseInstance<A, I>): Interface;
    abstract getRawBytecode<A, I>(instance: Instance<A, I>): string;
    abstract getContractName<A, I>(instance: BaseInstance<A, I>, parameters: OverridesAndName): string;
}
//# sourceMappingURL=Adapter.d.ts.map