import { BaseContract, Interface } from "ethers";
import { Adapter } from "./Adapter.js";
import { MinimalContract } from "../MinimalContract.js";
import type { Instance } from "../../../types/adapter.js";
import type { OverridesAndLibs, OverridesAndName } from "../../../types/deployer.js";
export declare abstract class BaseAdapter extends Adapter {
    getRawBytecode<A, I>(instance: Instance<A, I>): string;
    fromInstance<A, I>(instance: Instance<A, I>, parameters: OverridesAndName): Promise<MinimalContract>;
    toInstance<A, I>(instance: Instance<A, I>, address: string, parameters: OverridesAndLibs): Promise<I>;
    protected _insertHandlers(contract: BaseContract, contractName: string): BaseContract;
    protected _overrideConnectMethod(contract: BaseContract, contractInterface: Interface, contractName: string): Promise<BaseContract>;
    private _insertAddressGetter;
    private _getContractFunctionFragments;
    private _wrapOldMethod;
    private _recoverTransaction;
    private _sendTransaction;
    private _wrapTransactionFieldsToSave;
    private _getKeyFieldsFromTransaction;
    private _getTransactionName;
}
//# sourceMappingURL=BaseAdapter.d.ts.map