import { DrawQuotaItem, DrawQuotaItemExtra } from '../../deposit'; import { OriginDrawItem } from '../utils/utils'; import { CacheManager } from './CacheProvider'; export type BaseRuleConfig = { gap: number | string; adjust: number | string; /** * 跳过期数 */ skip?: number; }; export type GetBallOptions = { context: Record; /** * 本次计算的所有 */ data: OriginDrawItem[]; /** * 上一次是否赢 * 0是赢,1是输 , -1 打平 */ lastWin?: number; /** * 缓存管理器 */ cacheProvider: CacheManager; }; /** * 校验本次是否中奖 * 返回數值: * 失败+1 * 赢+0 */ export type checkInclude = (numbers: number[], value?: number | string) => number; /** * 对数组的结算结果进行平衡计算 * 1: 相同,返回-1 不增加指标 * 2:赢了。返回0 * 3:输了,返回1 * @param numbers * @param valueStr * @returns */ export declare const BlanceArraysCheckResult: checkInclude; /** * 计算选择球号的逻辑 */ type GetBallValueMethod = (config: RuleConfig, item: OriginDrawItem, index: number, options: GetBallOptions) => number | string | undefined; /** * 缓存提供者 */ export declare class TemplateCacheProvider { _cache: DrawQuotaItem[]; _lastWin: any; _context: any; _ballValueMap: any; set(catchQuotas: DrawQuotaItem[], lastWin: any, context: any, ballValueMap: any): void; get(): DrawQuotaItem[]; } /** * 增加缓存 * 组合、动态需要 其他不需要 */ export declare class RuleTemplate { cacheProvider?: TemplateCacheProvider; /** * 计算球号 */ getBallValue: GetBallValueMethod; /** * 计算校验逻辑 */ checkInclude: checkInclude; /** * 对算法分析依赖 */ getDepts: (config: RuleConfig) => Array; constructor(getBallValue: GetBallValueMethod, getDepts: (config: RuleConfig) => Array, checkInclude?: checkInclude); /** * 设置全局的缓存器 * @param cacheProvider */ setCacheProvider(cacheProvider: TemplateCacheProvider): void; /** * 计算单次结果 * @param data * @param config * @returns */ singleCalculate(data: OriginDrawItem[], config: RuleConfig, cacheProvider: CacheManager): DrawQuotaItemExtra; /** * 计算统一结果 * @param dataList * @param config * @returns */ batchCalculate(dataList: OriginDrawItem[], config: RuleConfig, cache: CacheManager): DrawQuotaItem[]; } export {};