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

import collections.abc
__all__ = [
    "build_clearing_workplan",
]

def build_clearing_workplan(pocket_boundary: collections.abc.Sequence[tuple[float, float]], islands: collections.abc.Sequence[collections.abc.Sequence[tuple[float, float]]] | None = None, tool_radius: float = 3, step_over: float = 2, step_length: float = 0.6, target_z: float = -5, safe_z: float = 2, wall_margin: float = 0, safe_margin: float = 1, stock_to_leave: float = 0, plunge_pitch: float = 1, angular_step: float = 0.1, area_tolerance: float = 1, max_deflection_deg: float = 30, finishing: bool = False) -> list[dict]:
    r"""
    Build a clearing workplan for the given pocket.
    
    Produces entry steps for the largest wide region, an AdaptiveClear
    step covering the whole pocket, narrow-passage-specific steps
    (ToroidalClear or Slot) for each classified passage, and an optional
    ProfileInner finishing pass.
    
    Combine with :class:`raygeo.cnc.machining.plan.Workplan`
    to turn the steps into a toolpath.
    
    :param pocket_boundary: Outer boundary as [(x, y), ...].
    :param islands: List of island polygons (default None).
    :param tool_radius: Tool radius in mm (default 3.0).
    :param step_over: Radial step-over (default 2.0).
    :param step_length: Forward step length (default 0.6).
    :param target_z: Target cutting depth (default -5.0).
    :param safe_z: Safe Z height (default 2.0).
    :param wall_margin: Wall margin (default 0.0).
    :param safe_margin: Safety margin from tool edge (default 1.0).
    :param stock_to_leave: Stock to leave for finishing (default 0.0).
    :param plunge_pitch: Helix pitch per revolution (default 1.0).
    :param angular_step: Angular step in radians (default 0.1).
    :param area_tolerance: Convergence area tolerance (default 1.0).
    :param max_deflection_deg: Max deflection per step in degrees (default 30.0).
    :param finishing: Whether to add a ProfileInner finishing pass (default False).
    :returns: List of WorkplanStep dicts with a "kind" key.
    """

