import { StrategyConfig, RuntimeContext, EvaluationResult, EngineOptions, OperatorHandler } from './type';
/**
 * 策略模型 - 核心实现
 *
 * 完全业务无关的通用策略引擎
 * 支持条件评估、动作匹配、结果返回
 */
/**
 * 策略引擎
 *
 * 核心职责：
 * 1. 递归评估条件组
 * 2. 收集满足条件的 actionIds
 * 3. 根据 actionIds 获取 ActionEffect 对象
 * 4. 按 priority 排序返回
 */
export declare class StrategyEngine {
    private options;
    private operatorHandlers;
    constructor(options?: EngineOptions);
    /**
     * 评估策略
     */
    evaluate(config: StrategyConfig, context: RuntimeContext): EvaluationResult;
    /**
     * 递归评估条件组
     *
     * @param group 条件组
     * @param context 运行时上下文
     * @returns 评估结果对象，包含条件是否满足和收集到的 actionIds
     */
    private evaluateConditionGroup;
    /**
     * 评估条件组的逻辑运算
     */
    private evaluateGroupLogic;
    /**
     * 评估单个规则
     */
    private evaluateRule;
    /**
     * 评估代码模式条件
     */
    private evaluateCodeCondition;
    /**
     * 评估运算符模式条件
     */
    private evaluateOperatorCondition;
    /**
     * 获取字段值
     */
    private getFieldValue;
    /**
     * 评估内置运算符
     */
    private evaluateBuiltInOperator;
    /**
     * 根据 actionIds 获取 ActionEffect 对象
     */
    private getActionsByIds;
    /**
     * 按 priority 排序（降序）
     */
    private sortActionsByPriority;
    /**
     * 判断是否为条件组
     */
    private isConditionGroup;
    /**
     * 验证配置
     */
    private validateConfig;
    /**
     * 初始化内置运算符处理器
     */
    private initializeBuiltInOperators;
    /**
     * 评估商品匹配运算符
     *
     * 匹配规则：
     * - 首先匹配 product_id
     * - 如果配置的 product_variant_id = 0，只需要 product_id 匹配（表示任意变体）
     * - 如果配置的 product_variant_id != 0，还需要 product_variant_id 精确匹配
     *
     * @param fieldValue 实际商品 { product_id: number, product_variant_id: number }
     * @param configValue 配置的商品列表 Array<{ product_id: number, product_variant_id: number }>
     * @returns 是否匹配
     */
    private evaluateProductMatch;
    /**
     * 注册自定义运算符
     */
    registerOperator(operator: string, handler: OperatorHandler): void;
    /**
     * 获取调试信息
     */
    getDebugInfo(): Record<string, any>;
}
/**
 * 创建策略引擎实例
 */
export declare function createStrategyEngine(options?: EngineOptions): StrategyEngine;
/**
 * 快速评估（使用默认引擎配置）
 */
export declare function evaluate(config: StrategyConfig, context: RuntimeContext): EvaluationResult;
