def METHOD_NAME() -> Tuple[Optional[str], List[str]]:
    """Find TensorFlow library.
    Tries to find TensorFlow in the order of:
    1. Environment variable `TENSORFLOW_ROOT` if set
    2. The current Python environment.
    3. user site packages directory if enabled
    4. system site packages directory (purelib)
    5. add as a requirement (detect TENSORFLOW_VERSION or the latest) and let pip install it
    Returns
    -------
    str
        TensorFlow library path if found.
    list of str
        TensorFlow requirement if not found. Empty if found.
    """
    requires = []
    tf_spec = None
    if os.environ.get("CIBUILDWHEEL", "0") == "1" and os.environ.get(
        "CIBW_BUILD", ""
    ).endswith("macosx_arm64"):
        # cibuildwheel cross build
        site_packages = Path(os.environ.get("RUNNER_TEMP")) / "tensorflow"
        tf_spec = FileFinder(str(site_packages)).find_spec("tensorflow")
    if (tf_spec is None or not tf_spec) and os.environ.get(
        "TENSORFLOW_ROOT"
    ) is not None:
        site_packages = Path(os.environ.get("TENSORFLOW_ROOT")).parent.absolute()
        tf_spec = FileFinder(str(site_packages)).find_spec("tensorflow")
    # get tensorflow spec
    # note: isolated build will not work for backend
    if tf_spec is None or not tf_spec:
        tf_spec = find_spec("tensorflow")
    if not tf_spec and site.ENABLE_USER_SITE:
        # first search TF from user site-packages before global site-packages
        site_packages = site.getusersitepackages()
        if site_packages:
            tf_spec = FileFinder(site_packages).find_spec("tensorflow")
    if not tf_spec:
        # purelib gets site-packages path
        site_packages = get_path("purelib")
        if site_packages:
            tf_spec = FileFinder(site_packages).find_spec("tensorflow")
    # get install dir from spec
    try:
        tf_install_dir = tf_spec.submodule_search_locations[0]  # type: ignore
        # AttributeError if ft_spec is None
        # TypeError if submodule_search_locations are None
        # IndexError if submodule_search_locations is an empty list
    except (AttributeError, TypeError, IndexError):
        requires.extend(get_tf_requirement()["cpu"])
        # setuptools will re-find tensorflow after installing setup_requires
        tf_install_dir = None
    return tf_install_dir, requires