Issue #23152: Move declaration into a header and exclude from stable API.
diff --git a/Include/fileutils.h b/Include/fileutils.h
index 6effd88..5ddd511 100644
--- a/Include/fileutils.h
+++ b/Include/fileutils.h
@@ -21,6 +21,7 @@
     struct stat *buf);
 #endif
 
+#ifndef Py_LIMITED_API
 #if defined(HAVE_FSTAT) || defined(MS_WINDOWS)
 
 #ifdef MS_WINDOWS
@@ -41,6 +42,10 @@
     int st_ctime_nsec;
     unsigned long st_file_attributes;
 };
+
+PyAPI_FUNC(void) _Py_time_t_to_FILE_TIME(time_t, int, FILETIME *);
+PyAPI_FUNC(void) _Py_attribute_data_to_stat(BY_HANDLE_FILE_INFORMATION *,
+                                            ULONG, struct _Py_stat_struct *);
 #else
 #  define _Py_stat_struct stat
 #endif
@@ -49,6 +54,7 @@
     int fd,
     struct _Py_stat_struct *stat);
 #endif   /* HAVE_FSTAT || MS_WINDOWS */
+#endif   /* Py_LIMITED_API */
 
 #ifdef HAVE_STAT
 PyAPI_FUNC(int) _Py_stat(
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 0d3fe57..945c9d0 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -1560,10 +1560,6 @@
     return TRUE;
 }
 
-/* defined in fileutils.c */
-void
-_Py_attribute_data_to_stat(BY_HANDLE_FILE_INFORMATION *info, ULONG reparse_tag, struct _Py_stat_struct *result);
-
 static int
 win32_xstat_impl_w(const wchar_t *path, struct _Py_stat_struct *result,
                    BOOL traverse);
@@ -6201,11 +6197,6 @@
     return return_value;
 }
 
-#ifdef MS_WINDOWS
-void
-_Py_time_t_to_FILE_TIME(time_t time_in, int nsec_in, FILETIME *out_ptr);
-#endif
-
 static PyObject *
 os_utime_impl(PyModuleDef *module, path_t *path, PyObject *times, PyObject *ns, int dir_fd, int follow_symlinks)
 /*[clinic end generated code: output=891489c35cc68c5d input=1f18c17d5941aa82]*/