/// import React, { PropsWithChildren } from 'react'; import { Injected } from '@polkadot/extension-inject/types'; import { WalletAdapter } from '@solana/wallet-adapter-base'; import SolanaWallets from '@solana/wallet-adapter-wallets'; import { TorusCtorArgs, TorusParams } from '@toruslabs/torus-embed'; import { EIP1193Provider, CustomNetwork, Platform } from '@web3-onboard/common'; import * as _polkadot_api from '@polkadot/api'; import * as _solana_wallet_adapter_react from '@solana/wallet-adapter-react'; import * as _ethersproject_providers from '@ethersproject/providers'; type WalletOptions = { accountAvatarPosition?: 'left' | 'right'; showAccountAvatar?: boolean; showBalance?: boolean; }; type WalletProps = { options?: WalletOptions; }; declare const Wallet: React.FC; interface EVMProviderConfigs { ledger?: { customNetwork?: CustomNetwork; filter?: Platform[]; }; trezor?: { email: string; appUrl: string; customNetwork?: CustomNetwork; filter?: Platform[]; }; walletconnect?: { bridge?: string; qrcodeModalOptions?: { mobileLinks: string[]; }; connectFirstChainId?: boolean; }; gnosis?: { whitelistedDomains?: RegExp[]; }; fortmatic?: { apiKey: string; }; portis?: { apiKey: string; }; enkrypt?: boolean; subwallet?: boolean; talisman?: boolean; mew?: boolean; torus?: TorusCtorArgs & TorusParams; } interface PolkadotProviderConfigs { enkrypt?: boolean; polkadotJsExtension?: boolean; subwallet?: boolean; talisman?: boolean; } interface SolanaProviderConfigs { walletconnect?: SolanaWallets.WalletConnectWalletAdapterConfig; ledger?: SolanaWallets.LedgerWalletAdapterConfig; solflare?: SolanaWallets.SolflareWalletAdapterConfig; sollet?: SolanaWallets.SolletWalletAdapterConfig; torus?: SolanaWallets.TorusWalletAdapterConfig; blocto?: SolanaWallets.BloctoWalletAdapterConfig; phantom?: SolanaWallets.PhantomWalletAdapterConfig; backpack?: SolanaWallets.BackpackWalletAdapterConfig; nightly?: {}; clover?: SolanaWallets.CloverWalletAdapterConfig; coin98?: SolanaWallets.Coin98WalletAdapterConfig; slope?: SolanaWallets.SlopeWalletAdapterConfig; solong?: SolanaWallets.SolongWalletAdapterConfig; exodus?: SolanaWallets.ExodusWalletAdapterConfig; math?: SolanaWallets.MathWalletAdapterConfig; } interface ProviderConfigs { evm?: EVMProviderConfigs; polkadot?: PolkadotProviderConfigs; solana?: SolanaProviderConfigs; } interface AtaWalletState { label: string; icon: string; polkadotInjected?: Injected; evmProvider?: EIP1193Provider; solanaWalletAdapter?: WalletAdapter; accounts: string[]; } type NativeCurrency = { name: string; decimals: number; symbol: string; }; declare enum ChainType { EVM = "evm", Polkadot = "polkadot", Solana = "solana" } interface Chain { type: ChainType; rpcUrls: string[]; blockExplorerUrls?: string[]; chainId: string; chainName: string; nativeCurrency?: NativeCurrency; iconUrl?: string; } type Chains = Chain[]; interface WalletProviderProps { appName?: string; prefixCls?: string; theme?: 'light' | 'dark'; providerConfigs: ProviderConfigs; chains: Chains; } declare const WalletProvider: React.FC>; /** * * @returns */ declare const useWallet: () => { appName?: string | undefined; account?: string | undefined; chainId?: string | undefined; chainName?: string | undefined; chains: Chains; walletState?: AtaWalletState | undefined; ethersProvider?: _ethersproject_providers.Web3Provider | undefined; solanaWallet?: _solana_wallet_adapter_react.WalletContextState | undefined; polkadotApi?: _polkadot_api.ApiPromise | undefined; loading: boolean; prefixCls?: string | undefined; theme?: "light" | "dark" | undefined; connect: (chainId: string) => Promise; disconnect: () => Promise; switchChain: (chainId: string) => Promise; }; /** * * @param chainId * @returns */ declare const useChainIsSupported: (chainId: string | undefined) => boolean; /** * @param account * @param prefix * @param suffix * @returns */ declare function truncateString(str: string, headNumber?: number, tailNumber?: number, replacement?: string): string; /** * @param u8a * @returns */ declare const u8aToHex: (u8a: number[]) => `0x${string}`; /** * @param u8 * @returns */ declare const u8ToHex: (u8: number) => `0x${string}`; export { AtaWalletState, Chain, ChainType, Chains, Wallet, WalletProvider, truncateString, u8ToHex, u8aToHex, useChainIsSupported, useWallet };