import { Signer, ethers } from "ethers"; import { MyWalletApi } from "./MyWalletApi"; import { HttpRpcClient } from "@account-abstraction/sdk/dist/src/HttpRpcClient"; import { Chains } from "./Constants"; import { ClientConfig, ChainConfig, PaymasterOptions } from "./interfaces/Banana.interface"; import { Web3Provider } from "@ethersproject/providers"; import { Wallet } from "./BananaWallet"; import { Banana4337Provider } from "./Banana4337Provider"; export declare class Banana { readonly chain: Chains; readonly signerOrProvider: Signer | Web3Provider; readonly _paymasterOptions?: PaymasterOptions[] | undefined; signer: Signer; provider: Web3Provider; Provider: ClientConfig; accountApi: MyWalletApi; httpRpcClient: HttpRpcClient; jsonRpcProvider: ethers.providers.JsonRpcProvider; walletAddress: string; bananaProvider: Banana4337Provider; jsonRpcProviderUrl: string; addresses: ChainConfig; network: Chains; currentPaymasterOption: PaymasterOptions | undefined; constructor(chain: Chains, signerOrProvider: Signer | Web3Provider, _paymasterOptions?: PaymasterOptions[] | undefined); /** * @method getTouchIdSafeWalletContractProxyFactory * @params { Signer | JsonRpcProvider } signerOrProvider * @returns { BananaAccountProxyFactory } TouchIdSafeWalletContractProxyFactory * create factory contract instance for factory contract factory types. */ private getTouchIdSafeWalletContractProxyFactory; /** * @method getBananaProvider * @params none * @returns { ERC4337EthersProvider } bananaProvider * create ERC4337Provider instance of user's smart contract wallet. Used as BananaProvider. */ getBananaProvider: () => Promise; /** * @method getTouchIdSafeWalletContractInitializer * @params none * @returns { string } TouchIdSafeWalletContractInitializer * create initializer which is callData for setupWithEntrypoint function */ private getTouchIdSafeWalletContractInitializer; /** * @method connectWallet * @param none * @returns * sucess: returns wallet: BananaWallet * error: returns error * setup signers and provider along with it create walletmetadata corresponding to the new wallet request. */ connectWallet: () => Promise; }