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

from __future__ import annotations

from cuda.core._launch_config import LaunchConfig
from cuda.core._module import Kernel
from cuda.core._stream import Stream
from cuda.core.graph import GraphBuilder
from cuda.core.typing import IsStreamType


def launch(stream: Stream | GraphBuilder | IsStreamType, config: LaunchConfig, kernel: Kernel, *kernel_args) -> None:
    """Launches a :obj:`~_module.Kernel`
    object with launch-time configuration.

    Parameters
    ----------
    stream : :obj:`~_stream.Stream` | :obj:`~graph.GraphBuilder`
        The stream establishing the stream ordering semantic of a
        launch.
    config : :obj:`LaunchConfig`
        Launch configurations inline with options provided by
        :obj:`~_launcher.LaunchConfig` dataclass.
    kernel : :obj:`~_module.Kernel`
        Kernel to launch.
    *kernel_args : Any
        Variable length argument list that is provided to the
        launching kernel.

    """