# This file was generated by stubgen-pyx v0.2.6 from cuda_core/cuda/core/system/_system.pyx

from __future__ import annotations

CUDA_BINDINGS_NVML_IS_COMPATIBLE: bool
__all__ = ['get_driver_branch', 'get_kernel_mode_driver_version', 'get_user_mode_driver_version', 'get_nvml_version', 'get_num_devices', 'get_process_name', 'CUDA_BINDINGS_NVML_IS_COMPATIBLE']

def get_user_mode_driver_version() -> tuple[int, ...]:
    """
    Get the user-mode (UMD / CUDA) driver version.

    This is the most commonly needed version when checking CUDA driver
    compatibility.  It works with all ``cuda-bindings`` versions.

    Returns
    -------
    version : tuple[int, ...]
        A 2-tuple ``(MAJOR, MINOR)``, e.g. ``(13, 0)`` for CUDA 13.0.
    """

def get_kernel_mode_driver_version() -> tuple[int, ...]:
    """
    Get the kernel-mode (KMD / GPU) driver version, e.g. 580.65.06.

    Returns
    -------
    version : tuple[int, ...]
        Typically a 3-tuple ``(MAJOR, MINOR, PATCH)``
        (2-tuple on WSL), e.g. ``(580, 65, 6)``.

    Raises
    ------
    RuntimeError
        If the NVML library is not available.
    """

def get_nvml_version() -> tuple[int, ...]:
    """
    The version of the NVML library.

    Returns
    -------
    version: tuple[int, ...]
        Tuple of integers representing the NVML version components.
    """

def get_driver_branch() -> str:
    """
    Retrieves the driver branch of the NVIDIA driver installed on the system.

    Returns
    -------
    branch: str
        The driver branch string (e.g., ``"560"``, ``"open"``, etc.).
    """

def get_num_devices() -> int:
    """
    Return the number of devices in the system.
    """

def get_process_name(pid: int) -> str:
    """
    The name of process with given PID.

    Parameters
    ----------
    pid: int
        The PID of the process for which to get the name.

    Returns
    -------
    name: str
        The process name.
    """