import { Product, Voucher } from './type';
/** 订单商品数量 */
export declare const getProductQuantity: (product: any) => any;
/**
 * 订单商品行唯一键，用于 maxPassesPerItem 按行、按件配额（同 SPU 不同规格视为不同行）。
 */
export declare function resolveWalletPassLineKey(product: any, indexInOrder: number): string;
export declare const getApplicableProductIds: (voucher: Voucher) => number[] | null;
/**
 * 优惠券处理函数
 * @param applicableVouchers 可用的券列表
 * @param orderTotalAmount 订单总金额
 * @param products 订单商品列表
 * @returns 返回推荐券列表和全部列表，每个券包含 _available_max_amount 和 _unified_available_status
 */
export declare function processVouchers(applicableVouchers: Voucher[], orderTotalAmount: number, products: Product[]): {
    recommended: any[];
    transformList: any[];
};
/**
 * 重新计算优惠券状态（基于已选券的增量计算）
 * @param allVouchers 所有原始券列表
 * @param selectedVouchers 已选中的券列表（按选中顺序）
 * @param orderTotalAmount 订单总金额
 * @param products 订单商品列表
 * @returns 返回更新后的所有券列表和已选券的详细抵扣信息
 */
export declare function recalculateVouchers(allVouchers: any[], selectedVouchers: any[], orderTotalAmount: number, products: any[]): {
    allWithUpdatedStatus: any[];
    selectedWithDetails: any[];
};
/**
 * 获取税费和附加费的舍入余数
 * @param product 商品
 * @param isDeductTaxAndFee 是否抵扣税费与附加费
 * @returns 舍入余数（税费 + 附加费的舍入余数）
 */
export declare const getTaxAndFeeRoundingRemainder: (product: Product, isDeductTaxAndFee: boolean) => number;
/**
 * 获取主商品的商品差额
 * @param product 商品
 * @returns 商品差额（与数量无关，计算总价时需要减去）
 */
export declare const getProductDiscountDifference: (product: Product) => number;
/**
 * 获取主商品价格（单价，不含舍入余数）
 * @param product 商品
 * @param isDeductTaxAndFee 是否抵扣税费与附加费
 * @returns 商品单价
 */
export declare const getMainProductPrice: (product: Product, isDeductTaxAndFee: boolean) => number;
/**
 * 获取套餐子商品税费和附加费的舍入余数
 * @param bundleItem 套餐子商品
 * @param isDeductTaxAndFee 是否抵扣税费与附加费
 * @returns 舍入余数（税费 + 附加费的舍入余数）
 */
export declare const getBundleItemTaxAndFeeRoundingRemainder: (bundleItem: any, isDeductTaxAndFee: boolean) => number;
/**
 * 获取套餐子商品的商品差额
 * @param bundleItem 套餐子商品
 * @returns 商品差额（与数量无关，计算总价时需要减去）
 */
export declare const getBundleItemDiscountDifference: (bundleItem: any) => number;
/**
 * 获取套餐子商品价格（不含舍入余数）
 * @param bundleItem 套餐子商品
 * @param parentQuantity 父商品数量
 * @param isDeductTaxAndFee 是否抵扣税费与附加费
 * @returns 子商品总价格（不含舍入余数）
 */
export declare const getBundleItemPrice: (bundleItem: any, parentQuantity: number, isDeductTaxAndFee: boolean) => number;
export declare const getBundleItemIsOriginalPrice: (item: any) => boolean;
export declare const getBundleItemIsMarkupPrice: (item: any) => boolean;
export declare const getBundleItemIsDiscountPrice: (item: any) => boolean;
export declare const getBundleItemIsMarkupOrDiscountPrice: (item: any) => boolean;
