import uuid
from typing import Any, Tuple, Union

class UUID(uuid.UUID):
    """
    UUID type compatible with stdlib uuid.UUID, with fast C-backed storage.

    Args:
        - inp: A hyphenated UUID string (32 hex chars with optional hyphens)
              or exactly 16 bytes.

    Returns:
        None (constructor).
    """

    def __init__(self, inp: Union[str, bytes]) -> None: ...
    @property
    def bytes(self) -> bytes: ...
    @property
    def int(self) -> int: ...
    @property
    def is_safe(self) -> uuid.SafeUUID: ...
    def __str__(self) -> str: ...
    @property
    def hex(self) -> str: ...
    def __repr__(self) -> str: ...
    def __reduce__(self) -> Tuple[type, Tuple[bytes]]: ...
    def __eq__(self, other: Any) -> bool: ...
    def __ne__(self, other: Any) -> bool: ...
    def __lt__(self, other: Any) -> bool: ...
    def __gt__(self, other: Any) -> bool: ...
    def __le__(self, other: Any) -> bool: ...
    def __ge__(self, other: Any) -> bool: ...
    def __hash__(self) -> int: ...
    def __int__(self) -> int: ...
    @property
    def bytes_le(self) -> bytes: ...
    @property
    def fields(self) -> Tuple[int, int, int, int, int, int]: ...
    @property
    def time_low(self) -> int: ...
    @property
    def time_mid(self) -> int: ...
    @property
    def time_hi_version(self) -> int: ...
    @property
    def clock_seq_hi_variant(self) -> int: ...
    @property
    def clock_seq_low(self) -> int: ...
    @property
    def time(self) -> int: ...
    @property
    def clock_seq(self) -> int: ...
    @property
    def node(self) -> int: ...
    @property
    def urn(self) -> str: ...
    @property
    def variant(self) -> uuid.UUID: ...
    @property
    def version(self) -> int: ...

def randstr_16() -> bytes:
    """
    Return 16 random bytes with UUID4 version/variant bits set.

    Args:
        (none)

    Returns:
        16 random bytes with UUID4 version/variant bits set (bytes).
    """
    ...

def uuid4() -> UUID:
    """
    Generate a random UUID (version 4).

    Args:
        (none)

    Returns:
        A new random UUID4 instance (UUID).
    """
    ...
