@italia-tools/faker
Version:
Italian-specific fake data generator based on Faker.js
26 lines (25 loc) • 822 B
TypeScript
import type { WeightedItem } from "../types/types";
export declare class WeightedRandomSelector<T> {
private readonly SMALL_DATASET_THRESHOLD;
private isSmallDataset;
private fastAccessArray?;
private items?;
private totalWeight;
/**
* Creates a WeightedRandomSelector that respects actual weights
* @param items Array of items with weights
* @param isSorted boolean indicating if items are pre-sorted
*/
constructor(items: WeightedItem<T>[], isSorted?: boolean);
private initializeSmallDataset;
/**
* Initialization for large datasets using cumulative weights
*/
private initializeLargeDataset;
/**
* Returns a random item respecting actual weights
*/
select(): T;
private binarySearch;
selectMultiple(count: number): T[];
}