import { Web3ProviderExtras } from "@aut-labs/abi-types";
import { ethers } from "ethers";
import { BiconomyEvent, ISDKBiconomyWrapper } from "../models/IBiconomyWrapper";
import { MultiSigner } from "../models/models";
import { SDKContractGenericResponse } from "../models/response";
declare type FnType<T, E> = (address: string, extras?: Partial<Web3ProviderExtras<E>>) => T & {
    contract?: ethers.Contract;
};
export default class SDKContractBase<AutWeb3Provider, ContractEventType> {
    private _address;
    private _multiSignerOrProvider;
    private _biconomyWrapper;
    private _type;
    functions: AutWeb3Provider;
    contract: ethers.Contract;
    skipBiconomy: boolean;
    private _multiSigner;
    private _biconomy;
    get multiSigner(): MultiSigner;
    set multiSigner(multiSigner: MultiSigner);
    constructor(_address: string, _multiSignerOrProvider: MultiSigner, _biconomyWrapper: ISDKBiconomyWrapper, _type: FnType<AutWeb3Provider, ContractEventType>);
    private init;
    get signerAddress(): Promise<string>;
    canSendEIP712Transaction(address: string): boolean;
    sendEIP712Transaction(data: string): Promise<SDKContractGenericResponse<BiconomyEvent>>;
}
export {};
