import { ethers } from 'ethers'; import { SafeConnectOptions } from './SafeConnectProvider'; import { Client } from '../client'; import { SupportedBlockchainsParam, WalletOptionsInterface } from '../client/interface'; interface WalletConnectionState { [index: string]: WalletConnection | WalletConnectionOauth2; } interface WalletMeta { publicKeys?: string[]; } export interface WalletConnection { address: string; chainId: number | string; providerType: string; blockchain: SupportedBlockchainsParam; provider?: ethers.providers.Web3Provider | any; ethers?: any; meta?: WalletMeta; expiryCookieName?: string; } export interface WalletConnectionOauth2 { address: string; chainId: number | string; blockchain: SupportedBlockchainsParam; provider: string; providerType: string; meta?: any; expiryCookieName?: string; logoutEndPoint?: string; } export declare enum SupportedWalletProviders { MetaMask = "MetaMask", WalletConnectV2 = "WalletConnectV2", Torus = "Torus", Phantom = "Phantom", Phantom_Brave = "Phantom_Brave", Flow = "Flow", Ultra = "Ultra", SafeConnect = "SafeConnect", AlphaWallet = "AlphaWallet", Socios = "Socios" } export declare class Web3WalletProvider { private client; private walletOptions?; safeConnectOptions?: SafeConnectOptions; connections: WalletConnectionState; constructor(client: Client, walletOptions?: WalletOptionsInterface, safeConnectOptions?: SafeConnectOptions); saveConnections(): void; emitSavedConnection(address: string): WalletConnection | WalletConnectionOauth2 | null; emitNetworkChange(chainId: string): string; deleteConnections(): Promise; loadConnections(): Promise; connectWith(walletType: string, checkConnectionOnly?: boolean): Promise; signMessage(address: string, message: string): Promise; getConnectionByAddress(address: string): WalletConnection | WalletConnectionOauth2; getWalletProvider(address: string): any; hasAnyConnection(blockchain: SupportedBlockchainsParam[]): boolean; getConnectedWalletAddresses(blockchain: SupportedBlockchainsParam): string[]; getConnectedWalletData(blockchain: SupportedBlockchainsParam): (WalletConnection | WalletConnectionOauth2)[]; getSingleSignatureCompatibleConnection(): WalletConnection | WalletConnectionOauth2 | false; registerNewWalletAddress(address: string, chainId: number | string, providerType: string, provider: any, blockchain: SupportedBlockchainsParam, walletMeta?: WalletMeta): void; registerNewOauth2WalletAddress(address: any, chainId: any, oAuth2Provider: any, blockchain: SupportedBlockchainsParam, logoutEndPoint?: string): void; private registerEvmProvider; private registerSolanaProvider; MetaMask(checkConnectionOnly: boolean): Promise; WalletConnectV2(checkConnectionOnly: boolean): Promise; Torus(checkConnectionOnly: boolean): Promise; Socios(checkConnectionOnly: boolean): Promise; Phantom(checkConnectionOnly: boolean): Promise; SafeConnect(checkConnectionOnly: boolean): Promise; Flow(checkConnectionOnly: boolean): Promise; Ultra(): Promise; safeConnectAvailable(): boolean; getSafeConnectProvider(): Promise; } export default Web3WalletProvider;