import {RNGFunction} from './types'; type WeightedRerservoirSampleOptions = { rng: RNGFunction; getWeight: (item: T, index?: number) => number; }; type WeightedReservoirSampleFunction = ( k: number, array: Array ) => Array; export class WeightedReservoirSampler { constructor(k: number, rng?: RNGFunction); constructor(k: number, options?: WeightedRerservoirSampleOptions); process(item: T): void; end(): Array; } declare const weightedReservoirSample: { (k: number, array: Array): Array; createWeightedReservoirSample( rng: RNGFunction ): WeightedReservoirSampleFunction; createWeightedReservoirSample( options: WeightedRerservoirSampleOptions ): WeightedReservoirSampleFunction; WeightedReservoirSampler: typeof WeightedReservoirSampler; }; export function createWeightedReservoirSample( rng: RNGFunction ): WeightedReservoirSampleFunction; export function createWeightedReservoirSample( options: WeightedRerservoirSampleOptions ): WeightedReservoirSampleFunction; export default weightedReservoirSample;