import { OriginDrawItem } from '../utils/utils'; import { DrawQuotaItemExtra } from '../../deposit'; import { CacheManager } from './CacheProvider'; import { IRule } from './RuleCompile'; import { TemplateCacheProvider } from './RuleTemplate'; /** * 算法计算器,这边可以引入所有不同规则的算法那 * 1: 通过依赖,可以计算出优先的计算逻辑 (大逻辑: 静态->动态->排名->双排),然后格子的计算逻辑 * 2: 这边要注意依赖,静态不能依赖动态,不能依赖排名算法 , 动态不能依赖排名 , 动态不能依赖双排名, 排名不能依赖双排名 * 3: */ export declare class Calculator { cache: CacheManager; algorithmCaches?: Record; /** * 日志級別 */ logger: 'debug' | 'info'; ruleList: IRule[]; constructor(ruleList: IRule[]); /** * 合并缓存成果,主要是为了应对分布式计算动态成果使用 * @param otherCache */ mergeCache(otherCache: CacheManager): void; /** * 注入依赖算法 * @param deptRuleList */ injectDept(deptRuleList: IRule[]): void; injectAlgorithmCache(algorithmCache: Record): void; /** * 计算数据 * @param dataList * @param hoverCache 是否保持缓存 * @returns */ execute(dataList: OriginDrawItem[], hoverCache?: boolean): { rule: any; result: DrawQuotaItemExtra; }[]; }