import { StrategyConfig } from '../../type';
import { Voucher, Product, VoucherEvaluationResult, EvaluatorInput } from './type';
/**
 * Wallet Pass 评估器
 * 用于评估哪些 voucher 可以在当前订单中使用
 */
export declare class WalletPassEvaluator {
    private engine;
    private strategyConfigs;
    private locale;
    constructor();
    setStrategyConfigs(strategyConfigs: StrategyConfig[]): void;
    getStrategyConfigs(): StrategyConfig[];
    setLocale(locale: string): void;
    getText(key: string): string;
    /**
     * 搜索券的格式
     * @param input 输入
     * @returns 返回搜索券的格式
     */
    searchVoucherFormat(input: EvaluatorInput): Voucher[];
    /**
     * 评估可用的 vouchers
     */
    evaluate(input: EvaluatorInput): VoucherEvaluationResult[];
    /** 检查代金券/折扣卡是否可用 并返回config */
    checkVoucherAvailability(input: EvaluatorInput): {
        isAvailable: boolean;
        config: {
            [x: string]: any;
        };
    };
    /**
     * 获取推荐券
     * @param input 输入
     * @returns 返回推荐券列表
     */
    getRecommendedVouchers(input: EvaluatorInput): {
        recommendedAmount: any;
        recommended: any[];
        transformList: any[];
        noApplicableVoucher: Voucher[];
    };
    enhanceWithReason(voucher: any): any;
    /**
     * 优惠券处理函数
     * @param applicableVouchers 可用的券列表
     * @param orderTotalAmount 订单总金额
     * @param products 订单商品列表
     * @returns 返回推荐券列表和全部列表，每个券包含 _available_max_amount 和 _unified_available_status
     */
    processVouchers(vouchers: Voucher[], orderTotalAmount: number, products: Product[]): {
        recommended: any[];
        transformList: any[];
    };
    /**
     * 重新计算优惠券状态（基于已选券的增量计算）
     * @param allVouchers 所有原始券列表
     * @param selectedVouchers 已选中的券列表（按选中顺序）
     * @param orderTotalAmount 订单总金额
     * @param products 订单商品列表
     * @returns 返回更新后的所有券列表和已选券的详细抵扣信息
     */
    recalculateVouchers(allVouchers: any[], selectedVouchers: any[], orderTotalAmount: number, products: any[]): {
        allWithUpdatedStatus: any[];
        selectedWithDetails: any[];
    };
    /**
     * 查找适用于指定 voucher 的策略配置
     */
    private findApplicableStrategies;
    /**
     * 检查策略中是否包含指定的 voucher ID
     */
    private checkVoucherInStrategy;
    /**
     * 递归检查条件组中是否包含 voucher ID
     */
    private checkVoucherInConditionGroup;
    /**
     * 计算适用商品的总金额和数量
     */
    private calculateApplicableProducts;
}
