import type { GetMultichainBalancesParams, GetTransactionHistoryParams, GetTransactionHistoryResponse } from '@dynamic-labs-sdk/client'; import { MultichainAccountBalanceResponse, SimulateTransactionResponse } from '@dynamic-labs/sdk-api-core'; import { BaseWallet, IEVMTransaction } from '@dynamic-labs/types'; import type { WalletOptionMetadata } from '@dynamic-labs/types'; import type { Chain } from '@dynamic-labs/wallet-connector-core'; export type WalletsModuleState = { userWallets: BaseWallet[]; primary: BaseWallet | null; walletOptions: WalletOptionMetadata[]; }; export type WalletsModuleMessages = { getBalance: (params: { wallet: BaseWallet; }) => Promise<{ balance: string; }>; getTransactionHistory: (params: GetTransactionHistoryParams) => Promise; getMultichainBalances: (params: GetMultichainBalancesParams) => Promise; signMessage: (params: { wallet: BaseWallet; message: string; }) => Promise<{ signedMessage: string; }>; sendBalance: (params: { wallet: BaseWallet; amount: string; toAddress: string; token?: { address: string; decimals?: number; }; }) => Promise<{ hash: string; }>; getNetwork: (params: { wallet: BaseWallet; }) => Promise<{ network: string | number; }>; switchNetwork: (params: { wallet: BaseWallet; chainId: string | number; }) => Promise; setPrimary: (params: { walletId: string; }) => Promise; /** Request current wallet state (pull). Use when push may have been missed (e.g. webview was in background). */ getWalletsState: () => Promise<{ userWallets: BaseWallet[]; primary: BaseWallet | null; }>; simulateEVMTransaction: (params: { transaction: IEVMTransaction; type: 'SendTransaction'; }) => Promise; simulateEVMTransactionAA: (params: { transaction: IEVMTransaction; type: 'SendTransaction'; }) => Promise; onWalletEvent: (params: WalletEventArguments & { walletId: string; }) => void; connectWallet: (connectorKey: string, chain?: Chain) => Promise; handleConnectedWallet: (wallet: Partial) => Promise; messageSigned: (params: { messageToSign: string; signedMessage: string; }) => void; walletAdded: (params: { wallet: BaseWallet; userWallets: BaseWallet[]; }) => void; walletRemoved: (params: { wallet: BaseWallet; userWallets: BaseWallet[]; }) => void; walletReturnFromDeepLink: (params: { previousRoute: string; }) => void; }; export type WalletEvents = { chainChange: (props: { chain: string; }) => void; }; type WalletEventArguments = { [E in keyof WalletEvents]: { event: E; eventParams: Parameters; }; }[keyof WalletEvents]; export declare const userWalletsEventNames: ("messageSigned" | "walletAdded" | "walletRemoved" | "walletReturnFromDeepLink")[]; export {};