UNPKG

step-sequence-generator

Version:

A step sequence generator for figure skating programs

35 lines (34 loc) 1.42 kB
import { ChanceRatioMap, WeightMapType } from '../../../shared/types/roulette/chance-ratio-map.type'; type CalcItemWeightArgsType = { currentItemAmount: number; desirePercent: number; totalItems: number; }; export type ItemKeyExtractorType<S, M> = (item: S) => M; type CountArgsType<S, M> = { selection: S[]; chanceRatioMap: ChanceRatioMap<M>; itemKeyExtractor: ItemKeyExtractorType<S, M>; }; /** * @name WeightCalculator * @param S тип для selection * @param M тип для ChanceRatioMap * * */ export declare class WeightCalculator { /** * count * @param args * @arg args.selection элементы * @arg args.chanceRatioMap шансы на выпадение элемента в selection в процентах * @arg args.itemKeyExtractor callback для опредления ключа для weightMap */ count<S, M>(args: CountArgsType<S, M>): WeightMapType<M>; protected calcWeights<M>(groupItemCounted: Map<M, number>, chanceRatioMap: WeightMapType<M>): WeightMapType<M>; protected calcItemWeight(args: CalcItemWeightArgsType): number; protected calcDesireItemAmount(totalItems: number, desirePercent: number): number; protected calcWeight(currentItemAmount: number, desireItemAmount: number): number; protected groupAndCountItems<S, M>(selection: S[], keyExtractor: (item: S) => M): Map<M, number>; } export {};