export type SeedFn = () => number; export type SeedType = number | string | SeedFn | RNG; export default abstract class RNG { abstract get name(): string; abstract next(): number; abstract seed(_seed?: SeedType, _opts?: Record): void; abstract clone(_seed?: SeedType, _opts?: Record): RNG; _seed(seed: number, _opts?: Record): number; }