2022-07-19 03:10:55 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/** @generate-class-entries */
|
|
|
|
|
|
|
|
namespace {
|
2022-07-23 10:32:01 +00:00
|
|
|
/**
|
|
|
|
* @var int
|
|
|
|
* @cvalue MT_RAND_MT19937
|
|
|
|
*/
|
|
|
|
const MT_RAND_MT19937 = UNKNOWN;
|
|
|
|
/**
|
|
|
|
* @var int
|
2023-07-07 10:16:48 +00:00
|
|
|
* @deprecated
|
2022-07-23 10:32:01 +00:00
|
|
|
* @cvalue MT_RAND_PHP
|
|
|
|
*/
|
|
|
|
const MT_RAND_PHP = UNKNOWN;
|
|
|
|
|
2022-07-19 03:10:55 +00:00
|
|
|
function lcg_value(): float {}
|
|
|
|
|
2023-01-20 22:35:08 +00:00
|
|
|
function mt_srand(?int $seed = null, int $mode = MT_RAND_MT19937): void {}
|
2022-07-19 03:10:55 +00:00
|
|
|
|
|
|
|
/** @alias mt_srand */
|
2023-01-20 22:35:08 +00:00
|
|
|
function srand(?int $seed = null, int $mode = MT_RAND_MT19937): void {}
|
2022-07-19 03:10:55 +00:00
|
|
|
|
|
|
|
function rand(int $min = UNKNOWN, int $max = UNKNOWN): int {}
|
|
|
|
|
|
|
|
function mt_rand(int $min = UNKNOWN, int $max = UNKNOWN): int {}
|
|
|
|
|
|
|
|
function mt_getrandmax(): int {}
|
|
|
|
|
|
|
|
/** @alias mt_getrandmax */
|
|
|
|
function getrandmax(): int {}
|
|
|
|
|
|
|
|
/** @refcount 1 */
|
|
|
|
function random_bytes(int $length): string {}
|
|
|
|
|
|
|
|
function random_int(int $min, int $max): int {}
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace Random\Engine
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* @strict-properties
|
|
|
|
*/
|
|
|
|
final class Mt19937 implements \Random\Engine
|
|
|
|
{
|
|
|
|
public function __construct(int|null $seed = null, int $mode = MT_RAND_MT19937) {}
|
|
|
|
|
|
|
|
public function generate(): string {}
|
|
|
|
|
|
|
|
public function __serialize(): array {}
|
|
|
|
|
|
|
|
public function __unserialize(array $data): void {}
|
|
|
|
|
|
|
|
public function __debugInfo(): array {}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @strict-properties
|
|
|
|
*/
|
|
|
|
final class PcgOneseq128XslRr64 implements \Random\Engine
|
|
|
|
{
|
2022-08-02 16:54:39 +00:00
|
|
|
public function __construct(string|int|null $seed = null) {}
|
2022-07-19 03:10:55 +00:00
|
|
|
|
|
|
|
/** @implementation-alias Random\Engine\Mt19937::generate */
|
|
|
|
public function generate(): string {}
|
|
|
|
|
|
|
|
public function jump(int $advance): void {}
|
2022-07-23 10:32:01 +00:00
|
|
|
|
2022-07-19 03:10:55 +00:00
|
|
|
/** @implementation-alias Random\Engine\Mt19937::__serialize */
|
|
|
|
public function __serialize(): array {}
|
|
|
|
|
|
|
|
/** @implementation-alias Random\Engine\Mt19937::__unserialize */
|
|
|
|
public function __unserialize(array $data): void {}
|
|
|
|
|
|
|
|
/** @implementation-alias Random\Engine\Mt19937::__debugInfo */
|
|
|
|
public function __debugInfo(): array {}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @strict-properties
|
|
|
|
*/
|
|
|
|
final class Xoshiro256StarStar implements \Random\Engine
|
|
|
|
{
|
|
|
|
public function __construct(string|int|null $seed = null) {}
|
|
|
|
|
|
|
|
/** @implementation-alias Random\Engine\Mt19937::generate */
|
|
|
|
public function generate(): string {}
|
2022-07-23 10:32:01 +00:00
|
|
|
|
2022-07-19 03:10:55 +00:00
|
|
|
public function jump(): void {}
|
2022-07-23 10:32:01 +00:00
|
|
|
|
2022-07-19 03:10:55 +00:00
|
|
|
public function jumpLong(): void {}
|
2022-07-23 10:32:01 +00:00
|
|
|
|
2022-07-19 03:10:55 +00:00
|
|
|
/** @implementation-alias Random\Engine\Mt19937::__serialize */
|
|
|
|
public function __serialize(): array {}
|
2022-07-23 10:32:01 +00:00
|
|
|
|
2022-07-19 03:10:55 +00:00
|
|
|
/** @implementation-alias Random\Engine\Mt19937::__unserialize */
|
|
|
|
public function __unserialize(array $data): void {}
|
2022-07-23 10:32:01 +00:00
|
|
|
|
2022-07-19 03:10:55 +00:00
|
|
|
/** @implementation-alias Random\Engine\Mt19937::__debugInfo */
|
|
|
|
public function __debugInfo(): array {}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @strict-properties
|
|
|
|
* @not-serializable
|
|
|
|
*/
|
|
|
|
final class Secure implements \Random\CryptoSafeEngine
|
|
|
|
{
|
|
|
|
/** @implementation-alias Random\Engine\Mt19937::generate */
|
|
|
|
public function generate(): string {}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
namespace Random
|
|
|
|
{
|
|
|
|
interface Engine
|
|
|
|
{
|
|
|
|
public function generate(): string;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface CryptoSafeEngine extends Engine
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @strict-properties
|
|
|
|
*/
|
|
|
|
final class Randomizer
|
|
|
|
{
|
|
|
|
public readonly Engine $engine;
|
|
|
|
|
|
|
|
public function __construct(?Engine $engine = null) {}
|
|
|
|
|
2022-07-30 12:03:39 +00:00
|
|
|
public function nextInt(): int {}
|
|
|
|
|
2022-12-14 16:48:47 +00:00
|
|
|
public function nextFloat(): float {}
|
|
|
|
|
|
|
|
public function getFloat(float $min, float $max, IntervalBoundary $boundary = IntervalBoundary::ClosedOpen): float {}
|
|
|
|
|
2022-07-30 12:03:39 +00:00
|
|
|
public function getInt(int $min, int $max): int {}
|
2022-07-19 03:10:55 +00:00
|
|
|
|
|
|
|
public function getBytes(int $length): string {}
|
|
|
|
|
2022-12-09 16:39:13 +00:00
|
|
|
public function getBytesFromString(string $string, int $length): string {}
|
|
|
|
|
2022-07-19 03:10:55 +00:00
|
|
|
public function shuffleArray(array $array): array {}
|
|
|
|
|
|
|
|
public function shuffleBytes(string $bytes): string {}
|
|
|
|
|
|
|
|
public function pickArrayKeys(array $array, int $num): array {}
|
|
|
|
|
|
|
|
public function __serialize(): array {}
|
|
|
|
|
|
|
|
public function __unserialize(array $data): void {}
|
|
|
|
}
|
2022-08-02 18:04:28 +00:00
|
|
|
|
2022-12-14 16:48:47 +00:00
|
|
|
enum IntervalBoundary {
|
|
|
|
case ClosedOpen;
|
|
|
|
case ClosedClosed;
|
|
|
|
case OpenClosed;
|
|
|
|
case OpenOpen;
|
|
|
|
}
|
|
|
|
|
2022-08-02 18:04:28 +00:00
|
|
|
/**
|
|
|
|
* @strict-properties
|
|
|
|
*/
|
|
|
|
class RandomError extends \Error
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @strict-properties
|
|
|
|
*/
|
|
|
|
class BrokenRandomEngineError extends RandomError
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @strict-properties
|
|
|
|
*/
|
|
|
|
class RandomException extends \Exception
|
|
|
|
{
|
|
|
|
}
|
2022-07-19 03:10:55 +00:00
|
|
|
}
|