def METHOD_NAME(points1: tf.Tensor, points2: tf.Tensor) -> Tuple[tf.Tensor, tf.Tensor]:
    """Match closest points across two sets.
    Args:
        points1: A set of reference points of shape `(N, D)`.
        points2: A set of unmatched points of shape `(M, D)`.
    Returns:
        A tuple of `(inds1, inds2)` with the indices of matching points across the two
        lists of points.
        `inds1` is a `tf.int32` tensor of shape `(n,)` where `n <= N` that indexes into
        `points1`.
        `inds2` is a `tf.int32` tensor of shape `(m,)` where `m <= M` that indexes into
        `points2`.
    Notes:
        This uses Euclidean distance and the Hungarian algorithm for matching.
    See also: tf_linear_sum_assignment
    """
    dists = tf.linalg.norm(
        tf.expand_dims(tf.cast(points1, tf.float32), axis=1)
        - tf.expand_dims(tf.cast(points2, tf.float32), axis=0),
        axis=-1,
    )
    return tf_linear_sum_assignment(dists)