import { Signer } from "@ethersproject/abstract-signer";
import { TransactionRequest } from "@ethersproject/abstract-provider";
import { JsonRpcProvider, TransactionResponse } from "@ethersproject/providers";
import { Deferrable } from "@ethersproject/properties";
import { Bytes } from "@ethersproject/bytes";
import { PublicKey } from "./interfaces/Banana.interface";
import UserOperation from "./utils/userOperation";
import { ClientConfig, ERC4337EthersSigner, HttpRpcClient } from "@account-abstraction/sdk";
import { BaseAccountAPI } from "@account-abstraction/sdk/dist/src/BaseAccountAPI";
import { Banana4337Provider } from "./Banana4337Provider";
export declare class BananaSigner extends ERC4337EthersSigner {
    readonly config: ClientConfig;
    readonly originalSigner: Signer;
    readonly erc4337provider: Banana4337Provider;
    readonly httpRpcClient: HttpRpcClient;
    readonly smartAccountAPI: BaseAccountAPI;
    jsonRpcProvider: JsonRpcProvider;
    publicKey: PublicKey;
    address: string;
    encodedId: string;
    constructor(config: ClientConfig, originalSigner: Signer, erc4337provider: Banana4337Provider, httpRpcClient: HttpRpcClient, smartAccountAPI: BaseAccountAPI, provider: JsonRpcProvider, publicKey: PublicKey);
    sendTransaction(transaction: Deferrable<TransactionRequest>): Promise<TransactionResponse>;
    signBananaMessage(message: Bytes | string): Promise<{
        messageSigned: any;
        signature: any;
    }>;
    signUserOp(userOp: UserOperation, reqId: string, encodedId: string): Promise<{
        newUserOp: UserOperation;
        process: any;
    }>;
}
