import { Interface } from "ethers";
import { MinimalContract } from "../MinimalContract.js";
import type { BaseInstance, Instance } from "../../../types/adapter.js";
import type { OverridesAndLibs, OverridesAndName } from "../../../types/deployer.js";
export declare abstract class Adapter {
    constructor();
    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