import type { EvaluationResult, RuntimeContext, ActionEffect } from '../../type';
import type { BusinessAdapter } from '../type';
import { type ItemRuleBusinessData, type QuantityCheckResult, type PrefillItemResult, type QuantityLimitResult } from './type';
/**
 * ItemRule 适配器
 *
 * 将堂食扫码点餐的商品规则业务数据转换为策略引擎格式，
 * 并将引擎结果转换为数量校验和预填购物车的业务结果。
 */
export declare class ItemRuleAdapter implements BusinessAdapter {
    name: string;
    version: string;
    prepareContext(businessData: ItemRuleBusinessData): RuntimeContext;
    transformResult(result: EvaluationResult, businessData?: ItemRuleBusinessData): {
        quantityChecks: QuantityCheckResult[];
        prefillItems: PrefillItemResult[];
    };
    formatConfig(result: EvaluationResult, businessData?: ItemRuleBusinessData): {
        result: EvaluationResult;
        businessData?: ItemRuleBusinessData;
    };
    private processQuantityCheck;
    /**
     * 根据 scope 判断当前提交是否需要评估此规则
     */
    private shouldEvaluateForScope;
    /**
     * 计算目标商品在购物车中的实际数量
     *
     * cumulative scope 时还会加上历史订单数量。
     */
    private calculateActualQuantity;
    /**
     * 逐条评估数量规则
     */
    private evaluateQuantityRules;
    /**
     * 根据 source 解析出数量规则的实际数值
     */
    private resolveQuantityValue;
    /**
     * 格式化校验提示语，替换 {min} {max} 占位符
     */
    private formatValidationMessage;
    /**
     * 从单个 QUANTITY_CHECK action 中提取数量限制配置。
     *
     * 根据 scope + submissionIndex 判断是否适用，
     * 解析动态数量来源（pax）后返回 min/max/exact/mustInclude。
     * 不适用或无配置时返回 null。
     */
    extractQuantityLimits(action: ActionEffect, businessData: ItemRuleBusinessData): QuantityLimitResult | null;
    /**
     * 计算当前提交剩余可选的最大数量。
     *
     * 仅在 scope='cumulative' 且存在 requiredMax 时生效：
     * 用 requiredMax 减去 historicalItems 中目标商品的累计数量，保底 0。
     * 其余场景返回 undefined，保持向后兼容。
     */
    private calculateRemainingMax;
    private processPrefillCart;
    /**
     * 根据 quantityFrom 计算预填数量
     */
    private resolvePrefillQuantity;
}
export default ItemRuleAdapter;
