import { WeightMapType } from '../../../shared/types/roulette/chance-ratio-map.type'; export type WeightKeyCreatorType = (arg: S) => M; export type GenerateNumberArgsType = { selection: S[]; weightMap: WeightMapType; weightKeyCreator: WeightKeyCreatorType; }; export declare class NumberGenerator { private _fallbackWeight; get fallbackWeight(): number; set fallbackWeight(value: number); /** * generateNumber * @arg args * @arg args.selection элементы * @arg args.weightMap список весов элементов * @arg args.weightKeyCreator callback для опредления ключа в weightMap */ generateNumber(args: GenerateNumberArgsType): number; protected createWeightList(args: GenerateNumberArgsType): number[]; protected getVirtualChanceListLength(chanceList: number[]): number; protected getRandomIndex(max: number): number; protected getItemIndex(chanceList: number[], randomIndex: number): number; }