def METHOD_NAME(
        bbox: tuple,
        stage: model.Component,
        ccd: model.Component,
        focus: model.Component,
        focus_range: tuple,
        focus_points: Iterable[tuple],
        conf_level: float = 0
):
    """
    Wrapper for do_autofocus_in_roi. It provides the ability to check the progress of autofocus
    procedure and cancel it. The current position of the focus component is used as the starting position.
    :param bbox: bounding box of the roi, tuple of (xmin, ymin, xmax, ymax) in meters
    :param stage: stage component
    :param ccd: ccd component
    :param focus: focus component
    :param focus_range: focus range, tuple of (zmin, zmax) in meters
    :param focus_points : (x,y) positions in the given bbox where autofocus will be run
    :param conf_level: :param conf_level: (0<float<1) cut-off value for confidence level of the focus metric, only focus
        points with a confidence above the cut-off will be saved. Default 0 saves all values.
    """
    # Create ProgressiveFuture and update its state to RUNNING
    est_start = time.time() + 0.1
    n_focus_points = len(focus_points)
    f = model.ProgressiveFuture(start=est_start,
                                end=est_start + estimate_autofocus_in_roi_time(n_focus_points,
                                                                               ccd))
    f._autofocus_roi_state = RUNNING
    f._autofocus_roi_lock = threading.Lock()
    f.task_canceller = _cancel_autofocus_bbox
    executeAsyncTask(f, do_autofocus_in_roi,
                     args=(f, bbox, stage, ccd, focus, focus_range, focus_points, conf_level))
    return f