/**
 * 现金支付推荐算法
 *
 * 核心原理：
 * 1. 每个推荐金额都应该是独立的最优组合
 * 2. 不推荐在已有最优解基础上添加额外面额的组合
 * 3. 优先推荐使用不同数量币种的组合
 * 4. 根据组合判断去重，避免扩展组合
 */
/**
 * 常见国家货币面额配置
 */
export declare const CURRENCY_DENOMINATIONS: Record<string, number[]>;
/**
 * 最优支付金额推荐算法
 * 推荐通过不同数量面额组合刚好足够支付的最小金额
 *
 * @param targetAmount 目标金额
 * @param denominations 币种面值数组
 * @returns 推荐支付金额数组
 */
export declare function recommendOptimalPayments(targetAmount: number, denominations: number[]): number[];
