type DepositAddressFlowParams = {
    /** CAIP-2 chain identifier for the destination (e.g. "eip155:8453"). */
    destinationChain: string;
    /** Token contract address on the destination chain (e.g. "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913" for USDC on Base). */
    destinationCurrency: string;
    /** Wallet address to receive the deposited funds. */
    destinationAddress: string;
    /** Refund address on the source chain. Resolved by the modal if not provided. */
    refundAddress?: string;
    slippageBps?: number;
};
type DepositAddressModalErrorCode = 'ROUTE_UNAVAILABLE' | 'UNEXPECTED_STATE' | 'TIMEOUT_WAITING_FOR_NEXT_ORDER' | 'TIMEOUT_ORDER_COMPLETION' | 'DEPOSIT_FAILED' | 'DEPOSIT_REFUNDED' | 'USER_EXITED' | 'AMOUNT_TOO_LOW' | 'INSUFFICIENT_LIQUIDITY' | 'UNSUPPORTED_CHAIN' | 'UNSUPPORTED_CURRENCY' | 'UNSUPPORTED_ROUTE' | 'NO_SWAP_ROUTES_FOUND' | 'NO_INTERNAL_SWAP_ROUTES_FOUND' | 'NO_QUOTES' | 'SANCTIONED_WALLET_ADDRESS' | 'REFUND_WALLET_CREATION_FAILED' | 'DEPOSIT_ADDRESSES_NOT_ENABLED' | 'NOT_AUTHENTICATED' | 'UNKNOWN_ERROR';

type UseDepositAddressResult = {
    /** Opens the source selection modal. Resolves on success, rejects on error. */
    createDepositAddress: (opts: DepositAddressFlowParams) => Promise<void>;
};
/** @experimental This interface may change at any time. */
declare const useDepositAddress: () => UseDepositAddressResult;

export { useDepositAddress as u };
export type { DepositAddressModalErrorCode as D, UseDepositAddressResult as U };
