import type { Asset, MultiChainAsset } from '../../components/Openfort/types'; import { OpenfortError } from '../../core/errors'; import type { EthereumConfig } from '../../ethereum/types'; type UseEthereumWalletAssetsOptions = { assets?: EthereumConfig['assets']; /** When true, fetches assets for all configured chains and returns MultiChainAsset[]. */ multiChain?: boolean; staleTime?: number; }; type WalletAssetsReturnBase = { isLoading: boolean; isError: boolean; isSuccess: boolean; isIdle: boolean; error: OpenfortError | undefined; refetch: () => Promise; }; type UseEthereumWalletAssetsResult = (WalletAssetsReturnBase & { multiChain: true; data: readonly MultiChainAsset[] | null; }) | (WalletAssetsReturnBase & { multiChain: false; data: readonly Asset[] | null; }); /** * Returns wallet assets (tokens, NFTs) for the connected Ethereum address. * Uses ERC-7811 via Openfort's authenticated RPC proxy. * * When `multiChain` is true, fetches assets across all configured chains * via `wallet_getAssets` and returns `MultiChainAsset[]` (assets tagged with `chainId`). * * @param options - Optional custom assets config, multiChain flag, and staleTime * @returns assets, isLoading, error, refetch * * @example * ```tsx * const { data: assets, isLoading } = useEthereumWalletAssets() * // Multi-chain: * const { data, multiChain } = useEthereumWalletAssets({ multiChain: true }) * ``` */ export declare const useEthereumWalletAssets: ({ assets: hookCustomAssets, multiChain, staleTime, }?: UseEthereumWalletAssetsOptions) => UseEthereumWalletAssetsResult; export {};