import { Connector, CreateConnectorFn } from 'wagmi'; import { CoinbaseWalletOptions } from '../wallets/connectors/coinbase/coinbase.js'; import { WalletConnectWalletOptions } from '../wallets/connectors/walletConnect/walletConnect.js'; import { type WalletMetadata } from '@getpara/react-common'; import ParaWeb from '@getpara/web-sdk'; import { WalletConnectParameters } from '../connectors/walletConnect.js'; export type Wallet = { createConnector?: (walletDetails: WalletDetailsParams) => CreateConnectorFn; createMobileConnector?: (walletDetails: WalletDetailsParams) => CreateConnectorFn; getUri?: (uri: string) => string; deeplinkUri?: string; } & WalletMetadata; export interface DefaultWalletOptions { para?: ParaWeb; createFarcasterConnector?: () => any; projectId: string; walletConnectParameters?: ParaWalletConnectParameters; } export type CreateWalletFn = (createWalletParams: CoinbaseWalletOptions & Omit & DefaultWalletOptions) => Wallet; export type WalletList = CreateWalletFn[]; export type ParaWalletConnectParameters = Omit; export type ParaDetails = Omit & { isWalletConnectModalConnector?: boolean; isParaConnector: boolean; walletConnectModalConnector?: Connector; showQrModal?: true; }; export type WalletDetailsParams = { paraDetails: ParaDetails; }; export type CreateConnector = (walletDetails: WalletDetailsParams) => CreateConnectorFn; export type WagmiConnectorInstance = Connector & { paraDetails?: ParaDetails; walletConnectModalConnector?: WagmiConnectorInstance; }; export type WalletInstance = Connector & ParaDetails;