from typing import Any

from typing import overload

class CRandomGenerator:
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, seed: int) -> None: ...
    def drawGaussian1D(self, mean: float, std: float) -> float: ...
    @overload
    def drawGaussian1D_normalized(self) -> float: ...
    @overload
    def drawGaussian1D_normalized() -> double: ...
    def drawUniform(self, Min: float, Max: float) -> float: ...
    @overload
    def drawUniform32bit(self) -> int: ...
    @overload
    def drawUniform32bit() -> uint32_t: ...
    @overload
    def drawUniform64bit(self) -> int: ...
    @overload
    def drawUniform64bit() -> uint64_t: ...
    @overload
    def randomize(self, seed: int) -> None: ...
    @overload
    def randomize(constunsignedint) -> void: ...
    @overload
    def randomize(self) -> None: ...
    @overload
    def randomize() -> void: ...

class Generator_MT19937:
    @overload
    def __init__(self) -> None: ...
    @overload
    def __init__(self, arg0: Generator_MT19937) -> None: ...
    def max(self, *args, **kwargs) -> Any: ...
    def min(self, *args, **kwargs) -> Any: ...
    @overload
    def seed(self, seed: int) -> None: ...
    @overload
    def seed(constunsignedint) -> void: ...
    def __call__(self) -> int: ...

@overload
def Randomize(seed: int) -> None: ...
@overload
def Randomize(constunsignedint) -> void: ...
@overload
def Randomize() -> None: ...
@overload
def Randomize() -> void: ...
def getRandomGenerator() -> CRandomGenerator: ...
@overload
def random_generator_for_STL(i: int) -> int: ...
@overload
def random_generator_for_STL(ptrdiff_t) -> ptrdiff_t: ...
