from _typeshed import Incomplete

class Cauchy(Distribution):
    loc: Incomplete
    scale: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...

class DiscreteDistribution:
    def __init__(self, *args, **kwargs) -> None: ...

class Distribution:
    def __init__(self, *args, **kwargs) -> None: ...

class Exponential(Distribution):
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...

class ExponentialRayleighMixture(Distribution):
    scale: Incomplete
    sigma: Incomplete
    weight: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...

class Fixed(Distribution):
    val: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...

class Gaussian(Distribution):
    loc: Incomplete
    scale: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...

class GaussianMixture(Distribution):
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...

class HalfGaussian(Distribution):
    scale: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...

class InverseGamma(Distribution):
    alpha: Incomplete
    beta: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...

class InverseMoment(Distribution):
    kmax: Incomplete
    tau: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...

class Kumaraswamy(Distribution):
    a: Incomplete
    b: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...

class Laplace(Distribution):
    loc: Incomplete
    scale: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...

class LogUniform(Distribution):
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...
    @property
    def lower(self): ...
    @property
    def upper(self): ...

class ModifiedLogUniform(Distribution):
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...
    @property
    def knee(self): ...
    @property
    def upper(self): ...

class RNG:
    def __init__(self, *args, **kwargs) -> None: ...
    def rand(self, *args, **kwargs): ...
    def rand_int(self, *args, **kwargs): ...

class Rayleigh(Distribution):
    scale: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...

class Triangular(Distribution):
    center: Incomplete
    lower: Incomplete
    upper: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...

class TruncatedCauchy(Distribution):
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...
    @property
    def loc(self): ...
    @property
    def lower(self): ...
    @property
    def scale(self): ...
    @property
    def upper(self): ...

class TruncatedExponential(Distribution):
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...
    @property
    def lower(self): ...
    @property
    def scale(self): ...
    @property
    def upper(self): ...

class TruncatedGaussian(Distribution):
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...
    @property
    def loc(self): ...
    @property
    def lower(self): ...
    @property
    def scale(self): ...
    @property
    def upper(self): ...

class TruncatedRayleigh(Distribution):
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...
    @property
    def lower(self): ...
    @property
    def scale(self): ...
    @property
    def upper(self): ...

class Uniform(Distribution):
    lower: Incomplete
    upper: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...

class UniformAngle(Distribution):
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...

class UniformInt(DiscreteDistribution):
    lower: Incomplete
    upper: Incomplete
    def __init__(self, *args, **kwargs) -> None: ...
    def cdf(self, *args, **kwargs): ...
    def logpdf(self, *args, **kwargs): ...
    def ppf(self, *args, **kwargs): ...
