/**
* List of built-in number generator engines.
*
* @since 4.2.0
*
* @see This uses [random-js](https://github.com/ckknight/random-js).
* For details of the engines, check the [documentation](https://github.com/ckknight/random-js#engines).
*
* @type {{
* min: {next(): number},
* max: {next(): number, range: number[]},
* browserCrypto: Engine,
* nodeCrypto: Engine,
* MersenneTwister19937: MersenneTwister19937,
* nativeMath: Engine
* }}
*/
export const engines: {
min: {
next(): number;
};
max: {
next(): number;
range: number[];
};
browserCrypto: Engine;
nodeCrypto: Engine;
MersenneTwister19937: MersenneTwister19937;
nativeMath: Engine;
};
export const generator: NumberGenerator;
import { browserCrypto } from "random-js/dist/engine/browserCrypto";
import { nodeCrypto } from "random-js/dist/engine/nodeCrypto";
import { MersenneTwister19937 } from "random-js/dist/engine/MersenneTwister19937";
import { nativeMath } from "random-js/dist/engine/nativeMath";
/**
* The `NumberGenerator` is capable of generating random numbers.
*
* @since 4.2.0
*
* @see This uses [random-js](https://github.com/ckknight/random-js).
* For details of the engines, check the [documentation](https://github.com/ckknight/random-js#engines).
*/
declare class NumberGenerator {
/**
* Create a `NumberGenerator` instance.
*
* The `engine` can be any object that has a `next()` method, which returns a number.
*
* @example
Built-in engine
* new NumberGenerator(engines.nodeCrypto);
*
* @example Custom engine
* new NumberGenerator({
* next() {
* // return a random number
* },
* });
*
* @param {Engine|{next(): number}} [engine=nativeMath] The RNG engine to use
*
* @throws {TypeError} engine must have function `next()`
*/
constructor(engine?: Engine | {
next(): number;
});
/**
* Set the engine.
*
* The `engine` can be any object that has a `next()` method, which returns a number.
*
* @example Built-in engine
* numberGenerator.engine = engines.nodeCrypto;
*
* @example Custom engine
* numberGenerator.engine = {
* next() {
* // return a random number
* },
* });
*
* @see {@link engines}
*
* @param {Engine|{next(): number}} engine
*
* @throws {TypeError} engine must have function `next()`
*/
set engine(arg: any);
/**
* The current engine.
*
* @returns {Engine|{next(): number}}
*/
get engine(): any;
/**
* Generate a random integer within the inclusive range `[min, max]`.
*
* @param {number} min The minimum integer value, inclusive.
* @param {number} max The maximum integer value, inclusive.
*
* @returns {number} The random integer
*/
integer(min: number, max: number): number;
/**
* Returns a floating-point value within `[min, max)` or `[min, max]`.
*
* @param {number} min The minimum floating-point value, inclusive.
* @param {number} max The maximum floating-point value.
* @param {boolean} [inclusive=false] If `true`, `max` will be inclusive.
*
* @returns {number} The random floating-point value
*/
real(min: number, max: number, inclusive?: boolean | undefined): number;
}
export {};