/** * Generate secure URL-friendly unique ID. The non-blocking version. * * By default, the ID will have 21 symbols to have a collision probability * similar to UUID v4. * * ```js * import { nanoid } from 'nanoid/async' * nanoid().then(id => { * model.id = id * }) * ``` * * @param size Size of the ID. The default size is 21. * @returns A promise with a random string. */ export function nanoid(size?: number): Promise /** * A low-level function. * Generate secure unique ID with custom alphabet. The non-blocking version. * * Alphabet must contain 256 symbols or less. Otherwise, the generator * will not be secure. * * @param alphabet Alphabet used to generate the ID. * @param size Size of the ID. * @returns A promise with a random string. * * ```js * import { customAlphabet } from 'nanoid/async' * const nanoid = customAlphabet('0123456789абвгдеё', 5) * nanoid().then(id => { * model.id = id //=> "8ё56а" * }) * ``` */ export function customAlphabet( alphabet: string, size: number ): () => Promise /** * Generate an array of random bytes collected from hardware noise. * * ```js * import { random } from 'nanoid/async' * random(5).then(bytes => { * bytes //=> [10, 67, 212, 67, 89] * }) * ``` * * @param bytes Size of the array. * @returns A promise with a random bytes array. */ export function random(bytes: number): Promise