import type { Numeric } from "@lou.codes/types";
/**
 * Deterministic pseudo-random number generator.
 *
 * **⚠️ IMPORTANT:** This only works in secure contexts (HTTPS/Node).
 *
 * @category Asynchronous Generators
 * @example
 * ```typescript
 * const seededRandom = random("some seed");
 * const random0To10 = seededRandom(0)(10);
 *
 * [...pick(2)(random0To10)]; // Two "random" values between 0 and 10
 * [...pick(2)(random0To10)]; // Same two "random" values between 0 and 10
 * ```
 * @see [SubtleCrypto#digest](https://mdn.io/SubtleCrypto.digest)
 * @see [cryptoNumber](https://lou.codes/libraries/lou_codes_utils/#cryptonumber)
 * @param seed Seed to be used to generate random numbers.
 * @returns Curried generator function with `seed` set in context.
 */
export declare const random: (
	seed: Numeric | string,
) => (from: number) => (to: number) => Readonly<AsyncIterableIterator<number>>;
