import type { StrategyConfig } from '../../type';
/**
 * 场景：火锅店扫码点餐，要求小料数量 >= 成人人数，自动添加到购物车
 *
 * WHEN: Always active
 * THEN:
 *   - Quantity Check: 小料最少数量 = Adult Pax
 *   - Prefill Cart: 自动添加小料 x Adult Pax
 */
export declare const MIN_CONDIMENT_PER_PERSON_STRATEGY: StrategyConfig;
/**
 * 场景：包子限量供应，每桌最多3份（含加单累计），肉包和菜包合计
 *
 * WHEN: Always active
 * THEN:
 *   - Quantity Check: 肉包 + 菜包 合计 <= 3，scope=cumulative
 */
export declare const MAX_BUNS_PER_TABLE_STRATEGY: StrategyConfig;
/**
 * 场景：堂食必须选择一个锅底（按商品匹配），自动预填默认锅底
 *
 * WHEN: Service Type = Dine-in
 * THEN:
 *   - Quantity Check: 指定锅底商品精确1份
 *   - Prefill Cart: 自动添加默认锅底 x 1
 */
export declare const HOTPOT_BASE_REQUIRED_STRATEGY: StrategyConfig;
/**
 * 场景：4 款锅底里任选至少 1 款，不自动预填，不限制多选上限
 *
 * WHEN: Always active
 * THEN:
 *   - Quantity Check: 4 个锅底商品合计数量 >= 1 （OR 组语义）
 *
 * 说明：
 *   - targets 里放多个 product_id 时，ItemRuleAdapter 会把它们视为 OR 组，
 *     仅校验「合计数量」，不会要求每款各自满足 min。
 *   - ScanOrder 工具层 buildQuantityLimitIndex 会跳过多目标规则的
 *     单品索引，避免 UI 把组级 min 误当作每张商品卡的减号下限，
 *     锁死用户切换锅底的操作。
 */
export declare const HOTPOT_BASE_PICK_ONE_STRATEGY: StrategyConfig;
/**
 * ItemRuleEvaluator 简洁调用示例
 *
 * 覆盖方法：
 * - setStrategyConfigs
 * - getStrategyConfigs
 * - evaluate
 * - getQuantityLimits
 * - validateCart
 * - getPrefillItems
 */
export declare function quickUseItemRuleEvaluator(): {
    configCount: number;
    evaluation: import("./type").ItemRuleEvaluationResult;
    quantityLimits: import("./type").QuantityLimitResult[];
    validation: {
        passed: boolean;
        failures: import("./type").QuantityCheckResult[];
    };
    prefillItems: import("./type").PrefillItemResult[];
};
/**
 * ItemRuleEvaluator 完整可运行 Demo
 *
 * 说明：
 * 1) 首次提交：触发 first_submission_only + cumulative + 条件规则
 * 2) 追加提交：演示 first_submission_only 不再触发
 * 3) 覆盖 strategyConfigs 临时传入：演示按需仅评估部分规则
 */
export declare function runItemRuleEvaluatorDemo(): {
    firstEvaluation: import("./type").ItemRuleEvaluationResult;
    validateResult: {
        passed: boolean;
        failures: import("./type").QuantityCheckResult[];
    };
    prefillItems: import("./type").PrefillItemResult[];
};
