# This file is automatically generated by pyo3_stub_gen
# ruff: noqa: E501, F401, F403, F405

import builtins
import collections.abc
import raygeo
import typing
__all__ = [
    "HelixSpec",
    "generate_helix",
]

@typing.final
class HelixSpec:
    r"""
    Parameters for the ``helix`` assembler.
    """
    @property
    def center(self) -> tuple[builtins.float, builtins.float]: ...
    @property
    def start_radius(self) -> builtins.float: ...
    @property
    def z_start(self) -> builtins.float: ...
    @property
    def z_end(self) -> builtins.float: ...
    @property
    def pitch(self) -> builtins.float: ...
    @property
    def direction(self) -> builtins.str:
        r"""
        ``"CW"`` or ``"CCW"``.
        """
    @property
    def angular_step(self) -> builtins.float: ...
    def __eq__(self, other: builtins.object, /) -> builtins.bool: ...
    def __new__(cls, center: tuple[builtins.float, builtins.float], start_radius: builtins.float, z_start: builtins.float, z_end: builtins.float, pitch: builtins.float, direction: builtins.str = 'CW', angular_step: builtins.float = 0.1) -> HelixSpec: ...

def generate_helix(part: raygeo.ops.part.Part, center: tuple[float, float], start_radius: float, z_start: float, z_end: float, pitch: float, direction: str = 'CW', angular_step: float = 0.1, state: raygeo.ops.state.State | None = None) -> raygeo.ops.assembly.AssemblyResult:
    r"""
    Generate a helical entry path.
    
    Produces a helical toolpath from *z_start* to *z_end* at the
    given *center* and *start_radius*.
    
    :param center: ``(x, y)`` center of the helix.
    :param start_radius: Radius of the helix in mm.
    :param z_start: Starting Z height.
    :param z_end: Ending (target) Z depth.
    :param pitch: Vertical descent per full revolution.
    :param direction: ``"CW"`` or ``"CCW"`` (default ``"CW"``).
    :param angular_step: Angular step in radians (default 0.1).
    :param state: Optional machine state to apply before the path.
    :returns: An :class:`AssemblyResult` with the helical path.
    """

