// Type definitions for random-js 1.0.8 // Project: https://github.com/ckknight/random-js // Definitions by: Gustavo Di Pietro // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped declare namespace random { export function Engine(): number; export interface Engine { } export function MT19937 (): number; export interface MT19937 extends Engine{ seed (value: number): Engine; seedWithArray(array: Array): Engine autoSeed(): Engine; discard(count: number): Engine; getUseCount(): Engine; } export class Random { constructor (engine?: Engine); static engines: { nativeMath: Engine, browserCrypto: Engine, mt19937: () => MT19937 } static integer(min: number, max: number): (engine: Engine) => number; static real(min: number, max: number, inclusive: boolean): (engine: Engine) => number; static bool(percentage?: number): (engine: Engine) => boolean; static bool(numerator: number, denominator: number): (engine: Engine) => boolean; static pick(engine: Engine, array: Array, begin?: number, end?: number): T; static picker(array: Array, begin?: number, end?: number): (engine: Engine) => T; static shuffle(engine: Engine, array: Array): Array; static sample(engine: Engine, population: Array, sampleSize: number): Array; static die(sideCount: number): (engine: Engine) => number; static dice(sideCount: number, dieCount: number): (engine: Engine) => number; static uuid4(engine: Engine): string; static string(engine: Engine, length: number): string; static string(pool: string, length: number): (engine: Engine, length: number) => string; static hex(upperCase?: boolean): (engine: Engine, length: number) => string; static date(start: Date, end: Date): (engine: Engine) => Date; integer(min: number, max: number): number; real(min: number, max: number, inclusive: boolean): number; bool(percentage?: number): (engine: Engine) => boolean; bool(numerator: number, denominator: number): boolean; pick(engine: Engine, array: Array, begin?: number, end?: number): T; picker(array: Array, begin?: number, end?: number): (engine: Engine) => T; shuffle(engine: Engine, array: Array): Array; sample(engine: Engine, population: Array, sampleSize: number): Array; die(sideCount: number): (engine: Engine) => number; dice(sideCount: number, dieCount: number): number; uuid4(engine: Engine): string; string(engine: Engine, length: number): string; string(pool: string, length: number): string; hex(upperCase?: boolean): string; date(start: Date, end: Date): Date; } }