diff --git a/core/modules/file/file.module b/core/modules/file/file.module
index e78c6d642fb6102e4697d41c2e60009a0b69c3b6..d6f16c205521d97b1fa46f0ee53b4806191b8141 100644
--- a/core/modules/file/file.module
+++ b/core/modules/file/file.module
@@ -10,6 +10,7 @@
 use Drupal\Core\Render\Element;
 use Drupal\Core\Routing\RouteMatchInterface;
 use Drupal\file\Entity\File;
+use Drupal\file\FileInterface;
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Component\Utility\Unicode;
 use Drupal\Core\Entity\EntityStorageInterface;
@@ -139,7 +140,7 @@ function file_load($fid, $reset = FALSE) {
  *   temporary file, the resulting file will also be a temporary file. See
  *   file_save_upload() for details on temporary files.
  *
- * @param \Drupal\file\File $source
+ * @param \Drupal\file\FileInterface $source
  *   A file entity.
  * @param $destination
  *   A string containing the destination that $source should be copied to.
@@ -159,7 +160,7 @@ function file_load($fid, $reset = FALSE) {
  * @see file_unmanaged_copy()
  * @see hook_file_copy()
  */
-function file_copy(File $source, $destination = NULL, $replace = FILE_EXISTS_RENAME) {
+function file_copy(FileInterface $source, $destination = NULL, $replace = FILE_EXISTS_RENAME) {
   if (!file_valid_uri($destination)) {
     if (($realpath = drupal_realpath($source->getFileUri())) !== FALSE) {
       \Drupal::logger('file')->notice('File %file (%realpath) could not be copied because the destination %destination is invalid. This is often caused by improper use of file_copy() or a missing stream wrapper.', array('%file' => $source->getFileUri(), '%realpath' => $realpath, '%destination' => $destination));
@@ -214,7 +215,7 @@ function file_copy(File $source, $destination = NULL, $replace = FILE_EXISTS_REN
  *   replace the file or rename the file based on the $replace parameter.
  * - Adds the new file to the files database.
  *
- * @param \Drupal\file\File $source
+ * @param \Drupal\file\FileInterface $source
  *   A file entity.
  * @param $destination
  *   A string containing the destination that $source should be moved to.
@@ -230,13 +231,13 @@ function file_copy(File $source, $destination = NULL, $replace = FILE_EXISTS_REN
  *       unique.
  *   - FILE_EXISTS_ERROR - Do nothing and return FALSE.
  *
- * @return \Drupal\file\File
+ * @return \Drupal\file\FileInterface
  *   Resulting file entity for success, or FALSE in the event of an error.
  *
  * @see file_unmanaged_move()
  * @see hook_file_move()
  */
-function file_move(File $source, $destination = NULL, $replace = FILE_EXISTS_RENAME) {
+function file_move(FileInterface $source, $destination = NULL, $replace = FILE_EXISTS_RENAME) {
   if (!file_valid_uri($destination)) {
     if (($realpath = drupal_realpath($source->getFileUri())) !== FALSE) {
       \Drupal::logger('file')->notice('File %file (%realpath) could not be moved because the destination %destination is invalid. This may be caused by improper use of file_move() or a missing stream wrapper.', array('%file' => $source->getFileUri(), '%realpath' => $realpath, '%destination' => $destination));
@@ -290,7 +291,7 @@ function file_move(File $source, $destination = NULL, $replace = FILE_EXISTS_REN
  * After executing the validator callbacks specified hook_file_validate() will
  * also be called to allow other modules to report errors about the file.
  *
- * @param \Drupal\file\File $file
+ * @param \Drupal\file\FileInterface $file
  *   A file entity.
  * @param $validators
  *   An optional, associative array of callback functions used to validate the
@@ -305,7 +306,7 @@ function file_move(File $source, $destination = NULL, $replace = FILE_EXISTS_REN
  *
  * @see hook_file_validate()
  */
-function file_validate(File $file, $validators = array()) {
+function file_validate(FileInterface $file, $validators = array()) {
   // Call the validation functions specified by this function's caller.
   $errors = array();
   foreach ($validators as $function => $args) {
@@ -322,13 +323,13 @@ function file_validate(File $file, $validators = array()) {
 /**
  * Checks for files with names longer than can be stored in the database.
  *
- * @param \Drupal\file\File $file
+ * @param \Drupal\file\FileInterface $file
  *   A file entity.
  *
  * @return
  *   An array. If the file name is too long, it will contain an error message.
  */
-function file_validate_name_length(File $file) {
+function file_validate_name_length(FileInterface $file) {
   $errors = array();
 
   if (!$file->getFilename()) {
@@ -343,7 +344,7 @@ function file_validate_name_length(File $file) {
 /**
  * Checks that the filename ends with an allowed extension.
  *
- * @param \Drupal\file\File $file
+ * @param \Drupal\file\FileInterface $file
  *   A file entity.
  * @param $extensions
  *   A string with a space separated list of allowed extensions.
@@ -354,7 +355,7 @@ function file_validate_name_length(File $file) {
  *
  * @see hook_file_validate()
  */
-function file_validate_extensions(File $file, $extensions) {
+function file_validate_extensions(FileInterface $file, $extensions) {
   $errors = array();
 
   $regex = '/\.(' . preg_replace('/ +/', '|', preg_quote($extensions)) . ')$/i';
@@ -367,7 +368,7 @@ function file_validate_extensions(File $file, $extensions) {
 /**
  * Checks that the file's size is below certain limits.
  *
- * @param \Drupal\file\File $file
+ * @param \Drupal\file\FileInterface $file
  *   A file entity.
  * @param $file_limit
  *   An integer specifying the maximum file size in bytes. Zero indicates that
@@ -382,7 +383,7 @@ function file_validate_extensions(File $file, $extensions) {
  *
  * @see hook_file_validate()
  */
-function file_validate_size(File $file, $file_limit = 0, $user_limit = 0) {
+function file_validate_size(FileInterface $file, $file_limit = 0, $user_limit = 0) {
   $user = \Drupal::currentUser();
   $errors = array();
 
@@ -401,7 +402,7 @@ function file_validate_size(File $file, $file_limit = 0, $user_limit = 0) {
 /**
  * Checks that the file is recognized as a valid image.
  *
- * @param \Drupal\file\File $file
+ * @param \Drupal\file\FileInterface $file
  *   A file entity.
  *
  * @return
@@ -409,7 +410,7 @@ function file_validate_size(File $file, $file_limit = 0, $user_limit = 0) {
  *
  * @see hook_file_validate()
  */
-function file_validate_is_image(File $file) {
+function file_validate_is_image(FileInterface $file) {
   $errors = array();
 
   $image_factory = \Drupal::service('image.factory');
@@ -428,7 +429,7 @@ function file_validate_is_image(File $file) {
  * Non-image files will be ignored. If a image toolkit is available the image
  * will be scaled to fit within the desired maximum dimensions.
  *
- * @param \Drupal\file\File $file
+ * @param \Drupal\file\FileInterface $file
  *   A file entity. This function may resize the file affecting its size.
  * @param $maximum_dimensions
  *   An optional string in the form WIDTHxHEIGHT e.g. '640x480' or '85x85'. If
@@ -445,7 +446,7 @@ function file_validate_is_image(File $file) {
  *
  * @see hook_file_validate()
  */
-function file_validate_image_resolution(File $file, $maximum_dimensions = 0, $minimum_dimensions = 0) {
+function file_validate_image_resolution(FileInterface $file, $maximum_dimensions = 0, $minimum_dimensions = 0) {
   $errors = array();
 
   // Check first that the file is an image.
@@ -549,14 +550,14 @@ function file_save_data($data, $destination = NULL, $replace = FILE_EXISTS_RENAM
 /**
  * Examines a file entity and returns appropriate content headers for download.
  *
- * @param \Drupal\file\File $file
+ * @param \Drupal\file\FileInterface $file
  *   A file entity.
  *
  * @return
  *   An associative array of headers, as expected by
  *   \Symfony\Component\HttpFoundation\StreamedResponse.
  */
-function file_get_content_headers(File $file) {
+function file_get_content_headers(FileInterface $file) {
   $type = mime_header_encode($file->getMimeType());
 
   return array(
@@ -1630,7 +1631,7 @@ function template_preprocess_file_link(&$variables) {
 /**
  * Creates a URL to the icon for a file entity.
  *
- * @param \Drupal\file\File $file
+ * @param \Drupal\file\FileInterface $file
  *   A file entity.
  * @param $icon_directory
  *   (optional) A path to a directory of icons to be used for files. Defaults to
@@ -1639,7 +1640,7 @@ function template_preprocess_file_link(&$variables) {
  * @return
  *   A URL string to the icon, or FALSE if an appropriate icon cannot be found.
  */
-function file_icon_url(File $file, $icon_directory = NULL) {
+function file_icon_url(FileInterface $file, $icon_directory = NULL) {
   if ($icon_path = file_icon_path($file, $icon_directory)) {
     return base_path() . $icon_path;
   }
@@ -1649,7 +1650,7 @@ function file_icon_url(File $file, $icon_directory = NULL) {
 /**
  * Creates a path to the icon for a file entity.
  *
- * @param \Drupal\file\File $file
+ * @param \Drupal\file\FileInterface $file
  *   A file entity.
  * @param $icon_directory
  *   (optional) A path to a directory of icons to be used for files. Defaults to
@@ -1659,7 +1660,7 @@ function file_icon_url(File $file, $icon_directory = NULL) {
  *   A string to the icon as a local path, or FALSE if an appropriate icon could
  *   not be found.
  */
-function file_icon_path(File $file, $icon_directory = NULL) {
+function file_icon_path(FileInterface $file, $icon_directory = NULL) {
   // Use the default set of icons if none specified.
   if (!isset($icon_directory)) {
     $icon_directory = \Drupal::config('file.settings')->get('icon.directory');
@@ -1702,13 +1703,13 @@ function file_icon_path(File $file, $icon_directory = NULL) {
 /**
  * Determines the generic icon MIME package based on a file's MIME type.
  *
- * @param \Drupal\file\File $file
+ * @param \Drupal\file\FileInterface $file
  *   A file entity.
  *
  * @return
  *   The generic icon MIME package expected for this file.
  */
-function file_icon_map(File $file) {
+function file_icon_map(FileInterface $file) {
   switch ($file->getMimeType()) {
     // Word document types.
     case 'application/msword':
@@ -1834,7 +1835,7 @@ function file_icon_map(File $file) {
 /**
  * Retrieves a list of references to a file.
  *
- * @param \Drupal\file\File $file
+ * @param \Drupal\file\FileInterface $file
  *   A file entity.
  * @param \Drupal\Core\Field\FieldDefinitionInterface $field
  *   (optional) A field definition to be used for this check. If given, limits the
@@ -1855,7 +1856,7 @@ function file_icon_map(File $file) {
  *   A multidimensional array. The keys are field_name, entity_type,
  *   entity_id and the value is an entity referencing this file.
  */
-function file_get_file_references(File $file, FieldDefinitionInterface $field = NULL, $age = EntityStorageInterface::FIELD_LOAD_REVISION, $field_type = 'file') {
+function file_get_file_references(FileInterface $file, FieldDefinitionInterface $field = NULL, $age = EntityStorageInterface::FIELD_LOAD_REVISION, $field_type = 'file') {
   $references = &drupal_static(__FUNCTION__, array());
   $field_columns = &drupal_static(__FUNCTION__ . ':field_columns', array());
 
diff --git a/core/modules/file/src/FileUsage/DatabaseFileUsageBackend.php b/core/modules/file/src/FileUsage/DatabaseFileUsageBackend.php
index 2311a061f8c78afd7717571b15141fa0dfa676ae..ecd62ef487a6f83208d8c1c078c806b2056d04a8 100644
--- a/core/modules/file/src/FileUsage/DatabaseFileUsageBackend.php
+++ b/core/modules/file/src/FileUsage/DatabaseFileUsageBackend.php
@@ -9,7 +9,7 @@
 
 use Drupal\Core\Database\Connection;
 use Drupal\Core\Database\DatabaseExceptionWrapper;
-use Drupal\file\Entity\File;
+use Drupal\file\FileInterface;
 
 /**
  * Defines the database file usage backend. This is the default Drupal backend.
@@ -48,7 +48,7 @@ public function __construct(Connection $connection, $table = 'file_usage') {
   /**
    * Implements Drupal\file\FileUsage\FileUsageInterface::add().
    */
-  public function add(File $file, $module, $type, $id, $count = 1) {
+  public function add(FileInterface $file, $module, $type, $id, $count = 1) {
     $this->connection->merge($this->tableName)
       ->keys(array(
         'fid' => $file->id(),
@@ -66,7 +66,7 @@ public function add(File $file, $module, $type, $id, $count = 1) {
   /**
    * Implements Drupal\file\FileUsage\FileUsageInterface::delete().
    */
-  public function delete(File $file, $module, $type = NULL, $id = NULL, $count = 1) {
+  public function delete(FileInterface $file, $module, $type = NULL, $id = NULL, $count = 1) {
     // Delete rows that have a exact or less value to prevent empty rows.
     $query = $this->connection->delete($this->tableName)
       ->condition('module', $module)
@@ -101,7 +101,7 @@ public function delete(File $file, $module, $type = NULL, $id = NULL, $count = 1
   /**
    * Implements Drupal\file\FileUsage\FileUsageInterface::listUsage().
    */
-  public function listUsage(File $file) {
+  public function listUsage(FileInterface $file) {
     $result = $this->connection->select($this->tableName, 'f')
       ->fields('f', array('module', 'type', 'id', 'count'))
       ->condition('fid', $file->id())
diff --git a/core/modules/file/src/FileUsage/FileUsageBase.php b/core/modules/file/src/FileUsage/FileUsageBase.php
index aef295cd604975e817c1e2bb0e07bf4072e5b2df..c3dea70696d99137f92a1294380e00322d5dd8a0 100644
--- a/core/modules/file/src/FileUsage/FileUsageBase.php
+++ b/core/modules/file/src/FileUsage/FileUsageBase.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\file\FileUsage;
 
-use Drupal\file\Entity\File;
+use Drupal\file\FileInterface;
 
 /**
  * Defines the base class for database file usage backend.
@@ -17,7 +17,7 @@ abstract class FileUsageBase implements FileUsageInterface {
   /**
    * Implements Drupal\file\FileUsage\FileUsageInterface::add().
    */
-  public function add(File $file, $module, $type, $id, $count = 1) {
+  public function add(FileInterface $file, $module, $type, $id, $count = 1) {
     // Make sure that a used file is permanent.
     if (!$file->isPermanent()) {
       $file->setPermanent();
@@ -28,7 +28,7 @@ public function add(File $file, $module, $type, $id, $count = 1) {
   /**
    * Implements Drupal\file\FileUsage\FileUsageInterface::delete().
    */
-  public function delete(File $file, $module, $type = NULL, $id = NULL, $count = 1) {
+  public function delete(FileInterface $file, $module, $type = NULL, $id = NULL, $count = 1) {
     // If there are no more remaining usages of this file, mark it as temporary,
     // which result in a delete through system_cron().
     $usage = \Drupal::service('file.usage')->listUsage($file);
diff --git a/core/modules/file/src/FileUsage/FileUsageInterface.php b/core/modules/file/src/FileUsage/FileUsageInterface.php
index de890e75ba7c3c271cdea1e99c93ee73c82ac558..63600b5e1803ee33f21a90121039203174f14b61 100644
--- a/core/modules/file/src/FileUsage/FileUsageInterface.php
+++ b/core/modules/file/src/FileUsage/FileUsageInterface.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\file\FileUsage;
 
-use Drupal\file\Entity\File;
+use Drupal\file\FileInterface;
 
 /**
  * File usage backend interface.
@@ -24,7 +24,7 @@ interface FileUsageInterface {
    * - The User module associates an image with a user, so $type would be 'user'
    *   and the $id would be the user's uid.
    *
-   * @param \Drupal\file\File $file
+   * @param \Drupal\file\FileInterface $file
    *   A file entity.
    * @param string $module
    *   The name of the module using the file.
@@ -35,12 +35,12 @@ interface FileUsageInterface {
    * @param int $count
    *   (optional) The number of references to add to the object. Defaults to 1.
    */
-  public function add(File $file, $module, $type, $id, $count = 1);
+  public function add(FileInterface $file, $module, $type, $id, $count = 1);
 
   /**
    * Removes a record to indicate that a module is no longer using a file.
    *
-   * @param \Drupal\file\File $file
+   * @param \Drupal\file\FileInterface $file
    *   A file entity.
    * @param string $module
    *   The name of the module using the file.
@@ -57,12 +57,12 @@ public function add(File $file, $module, $type, $id, $count = 1);
    *   to 1. Zero may be specified to delete all references to the file within a
    *   specific object.
    */
-  public function delete(File $file, $module, $type = NULL, $id = NULL, $count = 1);
+  public function delete(FileInterface $file, $module, $type = NULL, $id = NULL, $count = 1);
 
   /**
    * Determines where a file is used.
    *
-   * @param \Drupal\file\File $file
+   * @param \Drupal\file\FileInterface $file
    *   A file entity.
    *
    * @return array
@@ -71,5 +71,5 @@ public function delete(File $file, $module, $type = NULL, $id = NULL, $count = 1
    *   the third level contains the usage count.
    *
    */
-  public function listUsage(File $file);
+  public function listUsage(FileInterface $file);
 }
diff --git a/core/modules/system/tests/modules/service_provider_test/src/TestFileUsage.php b/core/modules/system/tests/modules/service_provider_test/src/TestFileUsage.php
index c9f061915caffe0d8729f9b69dee0e2e4c409188..a2c943eb7bdf4bc5784071b16f7aadcd4b396fbb 100644
--- a/core/modules/system/tests/modules/service_provider_test/src/TestFileUsage.php
+++ b/core/modules/system/tests/modules/service_provider_test/src/TestFileUsage.php
@@ -7,7 +7,7 @@
 
 namespace Drupal\service_provider_test;
 
-use Drupal\file\Entity\File;
+use Drupal\file\FileInterface;
 use Drupal\file\FileUsage\FileUsageBase;
 
 class TestFileUsage extends FileUsageBase {
@@ -15,18 +15,18 @@ class TestFileUsage extends FileUsageBase {
   /**
    * Implements Drupal\file\FileUsage\FileUsageInterface::add().
    */
-  public function add(File $file, $module, $type, $id, $count = 1) {
+  public function add(FileInterface $file, $module, $type, $id, $count = 1) {
   }
 
   /**
    * Implements Drupal\file\FileUsage\FileUsageInterface::delete().
    */
-  public function delete(File $file, $module, $type = NULL, $id = NULL, $count = 1) {
+  public function delete(FileInterface $file, $module, $type = NULL, $id = NULL, $count = 1) {
   }
 
   /**
    * Implements Drupal\file\FileUsage\FileUsageInterface::listUsage().
    */
-  public function listUsage(File $file) {
+  public function listUsage(FileInterface $file) {
   }
 }