import { BaseContract, Interface } from "ethers";
import { Adapter } from "./Adapter";
import { MinimalContract } from "../MinimalContract";
import { Instance } from "../../types/adapter";
import { OverridesAndLibs, OverridesAndName } from "../../types/deployer";
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