import type { TFunction } from 'i18next';
import type { Address } from 'viem';
import type { FunkitCheckoutConfig } from '../providers/FunkitCheckoutContext';
import type { AssetHoldingsItem } from '../utils/assets';
import { PaymentMethod } from '../domains/paymentMethods';
/**
 * Calculates the minimum USD value an asset must have to be considered usable for checkout.
 * Accounts for the customer's configured minimum deposit and a global floor.
 */
export declare function getMinValueThreshold(config: FunkitCheckoutConfig | undefined, minUsdRequired?: number): number;
export declare function isPreferredChain(chainId: number, additionalChains?: number[]): boolean;
export declare function isNativeTokenAddress(address: Address): boolean;
export declare function isDefaultToken(asset: AssetHoldingsItem, checkoutConfig: FunkitCheckoutConfig): boolean;
export declare const isPolygonEcosystemToken: (chainId: string, tokenAddress: string) => boolean;
interface AssetUsableToPayParms {
    config: FunkitCheckoutConfig;
    payerAddress: string;
    paymentMethod: PaymentMethod;
    targetChainId: string;
    targetTokenAddress: string;
    assetChainId: string;
    assetTokenAddress: string;
    assetUsdAmount: number | null;
    isAllowedForCheckout: boolean;
    minValueThreshold: number;
    isDynamicRoutingEnabled: boolean;
    t: TFunction;
}
export declare const isAssetUsableToPayForCheckout: ({ config, payerAddress, paymentMethod, targetChainId, targetTokenAddress, assetChainId, assetTokenAddress, assetUsdAmount, isAllowedForCheckout, minValueThreshold, isDynamicRoutingEnabled, t, }: AssetUsableToPayParms) => {
    isUsable: boolean;
    reason: string;
    minUsdWithFees?: number;
};
export {};
