/**
 * Secure Random Utilities
 *
 * Cryptographically secure random number generation utilities
 * to replace Math.random() throughout the codebase.
 *
 * Uses Node.js crypto module for all randomness to ensure
 * unpredictable values suitable for security-sensitive operations.
 *
 * @packageDocumentation
 */
/**
 * Generate a cryptographically secure random integer between min (inclusive) and max (exclusive)
 *
 * @param min - Minimum value (inclusive)
 * @param max - Maximum value (exclusive)
 * @returns A secure random integer in the range [min, max)
 */
export declare function secureRandomInt(min: number, max: number): number;
/**
 * Generate a cryptographically secure random float between 0 (inclusive) and 1 (exclusive)
 *
 * Uses 32 bits of randomness for good precision while maintaining performance.
 *
 * @returns A secure random float in the range [0, 1)
 */
export declare function secureRandomFloat(): number;
/**
 * Generate a cryptographically secure random element from an array
 *
 * @param array - The array to choose from
 * @returns A randomly selected element from the array
 * @throws Error if the array is empty
 */
export declare function secureRandomChoice<T>(array: readonly T[]): T;
/**
 * Cryptographically secure Fisher-Yates shuffle
 *
 * Creates a new shuffled array without modifying the original.
 *
 * @param array - The array to shuffle
 * @returns A new array with elements in random order
 */
export declare function secureRandomShuffle<T>(array: readonly T[]): T[];
/**
 * Generate cryptographically secure random bytes
 *
 * @param length - Number of bytes to generate
 * @returns Buffer containing random bytes
 */
export declare function secureRandomBytes(length: number): Buffer;
/**
 * Generate a secure unique identifier
 *
 * Uses crypto.randomUUID() for RFC 4122 v4 UUID generation.
 *
 * @returns A cryptographically secure UUID string
 */
export declare function secureRandomId(): string;
/**
 * Generate a secure random string suitable for IDs
 *
 * Creates a URL-safe base64 string from random bytes.
 *
 * @param length - Approximate length of the resulting string (actual length may vary slightly)
 * @returns A random URL-safe string
 */
export declare function secureRandomString(length?: number): string;
/**
 * Generate jitter for delays using secure randomness
 *
 * @param baseDelay - The base delay value
 * @param jitterFactor - Jitter factor (e.g., 0.25 for 25% jitter). Range: [-jitterFactor, +jitterFactor]
 * @returns Base delay with random jitter applied
 */
export declare function secureJitter(baseDelay: number, jitterFactor: number): number;
/**
 * Determine if an event should occur based on probability using secure randomness
 *
 * @param probability - Probability of returning true (0 to 1)
 * @returns true with the given probability
 */
export declare function secureRandomBoolean(probability: number): boolean;
//# sourceMappingURL=random.d.ts.map