import type { Connector, CurrentWallet as CoreCurrentWallet, CurrentWalletState, Plugin as CorePlugin, Wallet as CoreWallet, WalletConnectionStatus, WalletName, WalletState, } from '@web3-wallet/core'; import type { StoreApi, UseBoundStore } from 'zustand'; import type { BuiltinHooks } from './hooks'; import type { WrappedUseMutation } from './query'; export { AddEthereumChainParameter, Connector, CurrentWalletState, PluginName, Provider, WalletConnectionStatus, WalletName, WalletState, } from '@web3-wallet/core'; export interface Wallet extends CoreWallet, BuiltinHooks { getReactStore: () => UseBoundStore>; } export interface CurrentWallet extends CoreCurrentWallet, BuiltinHooks { useName: () => WalletName; getReactStore: () => UseBoundStore>; useConnectionStatus: () => WalletConnectionStatus; useConnectAsCurrentWallet: WrappedUseMutation< void, unknown, { walletName: WalletName; chain?: Parameters[0] } >; } export type PluginContext = { wallet: Omit; }; export type Plugin = CorePlugin;