<?php

declare(strict_types=1);

namespace App\Framework\Random;

interface RandomGenerator
{
    /**
     * Generate cryptographically secure random bytes.
     *
     * @param int $length Number of bytes to generate
     * @return string Random bytes
     */
    public function bytes(int $length): string;

    /**
     * Generate a random integer between min and max (inclusive).
     *
     * @param int $min Minimum value (inclusive)
     * @param int $max Maximum value (inclusive)
     * @return int Random integer
     */
    public function int(int $min, int $max): int;

    /**
     * Generate a random float between 0.0 and 1.0 (0.0 inclusive, 1.0 exclusive).
     *
     * @return float Random float between 0.0 and 1.0
     */
    public function float(int $min, int $max): float;

    public function hex(int $length): string;
}
