/** * Generate secure URL-friendly unique ID. * * By default, the ID will have 21 symbols to have a collision probability * similar to UUID v4. * * ```js * import { nanoid } from 'nanoid' * model.id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqL" * ``` * * @param size Size of the ID. The default size is 21. * @returns A random string. */ export function nanoid (size?: number): string /** * Generate secure unique ID with custom alphabet. * * 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 random string generator. * * ```js * const { customAlphabet } = require('nanoid') * const nanoid = customAlphabet('0123456789абвгдеё', 5) * nanoid() //=> "8ё56а" * ``` */ export function customAlphabet (alphabet: string, size: number): () => string /** * Generate unique ID with custom random generator and alphabet. * * Alphabet must contain 256 symbols or less. Otherwise, the generator * will not be secure. * * ```js * import { customRandom } from 'nanoid/format' * * const nanoid = customRandom('abcdef', 5, size => { * const random = [] * for (let i = 0; i < size; i++) { * random.push(randomByte()) * } * return random * }) * * nanoid() //=> "fbaef" * ``` * * @param alphabet Alphabet used to generate a random string. * @param size Size of the random string. * @param random A random bytes generator. * @returns A random string generator. */ export function customRandom ( alphabet: string, size: number, random: (bytes: number) => Uint8Array, ): () => string /** * URL safe symbols. * * ```js * import { urlAlphabet } from 'nanoid' * const nanoid = customRandom(urlAlphabet, 10) * nanoid() //=> "Uakgb_J5m9" * ``` */ export const urlAlphabet: string /** * Generate an array of random bytes collected from hardware noise. * * ```js * import { customRandom, random } from 'nanoid' * const nanoid = customRandom("abcdef", 5, random) * ``` * * @param bytes Size of the array. * @returns An array of random bytes. */ export function random (bytes: number): Uint8Array