def METHOD_NAME(polygon: ndarray, offset: float) -> ndarray:
    """Returns a grown closed shaped polygon by an offset."""
    s = remove_identicals(polygon)
    s = remove_flat_angles(s)
    s = np.vstack([s, s[0]])
    if len(s) <= 1:
        return s
    # Make sure the shape is oriented in the correct direction for scaling
    ss = sign_shape(s)
    offset *= -ss
    a2 = angles_rad(s) * 0.5
    a1 = np.roll(a2, 1)
    a2[-1] = a2[0]
    a1[0] = a1[-1]
    a = a2 + a1
    c_minus = cos(a2 - a1)
    offsets = np.column_stack((-sin(a) / c_minus, cos(a) / c_minus)) * offset
    return s + offsets