diff --git a/core/lib/Drupal/Component/Plugin/PluginManagerInterface.php b/core/lib/Drupal/Component/Plugin/PluginManagerInterface.php
index 803682a..8a46834 100644
--- a/core/lib/Drupal/Component/Plugin/PluginManagerInterface.php
+++ b/core/lib/Drupal/Component/Plugin/PluginManagerInterface.php
@@ -8,7 +8,6 @@
 
 use Drupal\Component\Plugin\Discovery\DiscoveryInterface;
 use Drupal\Component\Plugin\Factory\FactoryInterface;
-use Drupal\Component\Plugin\Mapper\MapperInterface;
 
 /**
  * Interface implemented by plugin managers.
@@ -29,5 +28,5 @@
  *
  * @ingroup plugin_api
  */
-interface PluginManagerInterface extends DiscoveryInterface, FactoryInterface, MapperInterface {
+interface PluginManagerInterface extends DiscoveryInterface, FactoryInterface {
 }
diff --git a/core/lib/Drupal/Core/Entity/EntityReferenceSelection/SelectionPluginManagerInterface.php b/core/lib/Drupal/Core/Entity/EntityReferenceSelection/SelectionPluginManagerInterface.php
index 278e3c4..b5f757b 100644
--- a/core/lib/Drupal/Core/Entity/EntityReferenceSelection/SelectionPluginManagerInterface.php
+++ b/core/lib/Drupal/Core/Entity/EntityReferenceSelection/SelectionPluginManagerInterface.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\Core\Entity\EntityReferenceSelection;
 
+use Drupal\Component\Plugin\Mapper\MapperInterface;
 use Drupal\Component\Plugin\PluginManagerInterface;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Field\FieldDefinitionInterface;
@@ -14,7 +15,7 @@
 /**
  * Defines an interface for the entity reference selection plugin manager.
  */
-interface SelectionPluginManagerInterface extends PluginManagerInterface {
+interface SelectionPluginManagerInterface extends PluginManagerInterface, MapperInterface {
 
   /**
    * Gets the plugin ID for a given target entity type and base plugin ID.
diff --git a/core/lib/Drupal/Core/Field/FormatterPluginManager.php b/core/lib/Drupal/Core/Field/FormatterPluginManager.php
index e6054a9..414ac25 100644
--- a/core/lib/Drupal/Core/Field/FormatterPluginManager.php
+++ b/core/lib/Drupal/Core/Field/FormatterPluginManager.php
@@ -17,7 +17,7 @@
  *
  * @ingroup field_formatter
  */
-class FormatterPluginManager extends DefaultPluginManager {
+class FormatterPluginManager extends DefaultPluginManager implements FormatterPluginManagerInterface {
 
   /**
    * An array of formatter options for each field type.
diff --git a/core/lib/Drupal/Core/Field/FormatterPluginManagerInterface.php b/core/lib/Drupal/Core/Field/FormatterPluginManagerInterface.php
new file mode 100644
index 0000000..2bef39b
--- /dev/null
+++ b/core/lib/Drupal/Core/Field/FormatterPluginManagerInterface.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Core\Field\FormatterPluginManagerInterface.
+ */
+
+namespace Drupal\Core\Field;
+
+use Drupal\Component\Plugin\Mapper\MapperInterface;
+use Drupal\Component\Plugin\PluginManagerInterface;
+
+/**
+ * Defines a field formatter plugin manager.
+ *
+ * @ingroup field_formatter
+ */
+interface FormatterPluginManagerInterface extends PluginManagerInterface, MapperInterface {
+}
diff --git a/core/lib/Drupal/Core/Field/WidgetPluginManager.php b/core/lib/Drupal/Core/Field/WidgetPluginManager.php
index c251135..3779d0b 100644
--- a/core/lib/Drupal/Core/Field/WidgetPluginManager.php
+++ b/core/lib/Drupal/Core/Field/WidgetPluginManager.php
@@ -17,7 +17,7 @@
  *
  * @ingroup field_widget
  */
-class WidgetPluginManager extends DefaultPluginManager {
+class WidgetPluginManager extends DefaultPluginManager implements WidgetPluginManagerInterface {
 
   /**
    * The field type manager to define field.
diff --git a/core/lib/Drupal/Core/Field/WidgetPluginManagerInterface.php b/core/lib/Drupal/Core/Field/WidgetPluginManagerInterface.php
new file mode 100644
index 0000000..4d019d3
--- /dev/null
+++ b/core/lib/Drupal/Core/Field/WidgetPluginManagerInterface.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\Core\Field\WidgetPluginManagerInterface.
+ */
+
+namespace Drupal\Core\Field;
+
+use Drupal\Component\Plugin\Mapper\MapperInterface;
+use Drupal\Component\Plugin\PluginManagerInterface;
+
+/**
+ * Defines a field widget plugin manager.
+ *
+ * @ingroup field_widget
+ */
+interface WidgetPluginManagerInterface extends PluginManagerInterface, MapperInterface {
+}
diff --git a/core/lib/Drupal/Core/Mail/MailManagerInterface.php b/core/lib/Drupal/Core/Mail/MailManagerInterface.php
index 5cb446a..1e2f629 100644
--- a/core/lib/Drupal/Core/Mail/MailManagerInterface.php
+++ b/core/lib/Drupal/Core/Mail/MailManagerInterface.php
@@ -7,12 +7,13 @@
 
 namespace Drupal\Core\Mail;
 
+use Drupal\Component\Plugin\Mapper\MapperInterface;
 use Drupal\Component\Plugin\PluginManagerInterface;
 
 /**
  * Provides an interface for sending mail.
  */
-interface MailManagerInterface extends PluginManagerInterface {
+interface MailManagerInterface extends PluginManagerInterface, MapperInterface {
 
   /**
    * Composes and optionally sends an email message.
diff --git a/core/modules/rest/src/Plugin/Type/ResourcePluginManager.php b/core/modules/rest/src/Plugin/Type/ResourcePluginManager.php
index 97594c4..483987e 100644
--- a/core/modules/rest/src/Plugin/Type/ResourcePluginManager.php
+++ b/core/modules/rest/src/Plugin/Type/ResourcePluginManager.php
@@ -19,7 +19,7 @@
  * @see \Drupal\rest\Plugin\ResourceInterface
  * @see plugin_api
  */
-class ResourcePluginManager extends DefaultPluginManager {
+class ResourcePluginManager extends DefaultPluginManager implements ResourcePluginManagerInterface {
 
   /**
    * Constructs a new \Drupal\rest\Plugin\Type\ResourcePluginManager object.
diff --git a/core/modules/rest/src/Plugin/Type/ResourcePluginManagerInterface.php b/core/modules/rest/src/Plugin/Type/ResourcePluginManagerInterface.php
new file mode 100644
index 0000000..39de46f
--- /dev/null
+++ b/core/modules/rest/src/Plugin/Type/ResourcePluginManagerInterface.php
@@ -0,0 +1,22 @@
+<?php
+
+/**
+ * @file
+ * Definition of Drupal\rest\Plugin\Type\ResourcePluginManagerInterface.
+ */
+
+namespace Drupal\rest\Plugin\Type;
+
+use Drupal\Component\Plugin\Mapper\MapperInterface;
+use Drupal\Component\Plugin\PluginManagerInterface;
+
+/**
+ * Defines a REST resource plugin manager.
+ *
+ * @see \Drupal\rest\Annotation\RestResource
+ * @see \Drupal\rest\Plugin\ResourceBase
+ * @see \Drupal\rest\Plugin\ResourceInterface
+ * @see plugin_api
+ */
+interface ResourcePluginManagerInterface extends PluginManagerInterface, MapperInterface {
+}
diff --git a/core/modules/rest/src/RestPermissions.php b/core/modules/rest/src/RestPermissions.php
index 652ae1d..6528e1c 100644
--- a/core/modules/rest/src/RestPermissions.php
+++ b/core/modules/rest/src/RestPermissions.php
@@ -9,7 +9,7 @@
 
 use Drupal\Core\Config\ConfigFactoryInterface;
 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
-use Drupal\rest\Plugin\Type\ResourcePluginManager;
+use Drupal\rest\Plugin\Type\ResourcePluginManagerInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -20,7 +20,7 @@ class RestPermissions implements ContainerInjectionInterface {
   /**
    * The rest resource plugin manager.
    *
-   * @var \Drupal\rest\Plugin\Type\ResourcePluginManager
+   * @var \Drupal\rest\Plugin\Type\ResourcePluginManagerInterface
    */
   protected $restPluginManager;
 
@@ -34,12 +34,12 @@ class RestPermissions implements ContainerInjectionInterface {
   /**
    * Constructs a new RestPermissions instance.
    *
-   * @param \Drupal\rest\Plugin\Type\ResourcePluginManager $rest_plugin_manager
+   * @param \Drupal\rest\Plugin\Type\ResourcePluginManagerInterface $rest_plugin_manager
    *   The rest resource plugin manager.
    * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
    *   The config factory.
    */
-  public function __construct(ResourcePluginManager $rest_plugin_manager, ConfigFactoryInterface $config_factory) {
+  public function __construct(ResourcePluginManagerInterface $rest_plugin_manager, ConfigFactoryInterface $config_factory) {
     $this->restPluginManager = $rest_plugin_manager;
     $this->configFactory = $config_factory;
   }
diff --git a/core/modules/rest/src/Routing/ResourceRoutes.php b/core/modules/rest/src/Routing/ResourceRoutes.php
index db439dc..594c865 100644
--- a/core/modules/rest/src/Routing/ResourceRoutes.php
+++ b/core/modules/rest/src/Routing/ResourceRoutes.php
@@ -10,7 +10,7 @@
 use Drupal\Core\Config\ConfigFactoryInterface;
 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
 use Drupal\Core\Routing\RouteSubscriberBase;
-use Drupal\rest\Plugin\Type\ResourcePluginManager;
+use Drupal\rest\Plugin\Type\ResourcePluginManagerInterface;
 use Psr\Log\LoggerInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
@@ -24,7 +24,7 @@ class ResourceRoutes extends RouteSubscriberBase{
   /**
    * The plugin manager for REST plugins.
    *
-   * @var \Drupal\rest\Plugin\Type\ResourcePluginManager
+   * @var \Drupal\rest\Plugin\Type\ResourcePluginManagerInterface
    */
   protected $manager;
 
@@ -45,14 +45,14 @@ class ResourceRoutes extends RouteSubscriberBase{
   /**
    * Constructs a RouteSubscriber object.
    *
-   * @param \Drupal\rest\Plugin\Type\ResourcePluginManager $manager
+   * @param \Drupal\rest\Plugin\Type\ResourcePluginManagerInterface $manager
    *   The resource plugin manager.
    * @param \Drupal\Core\Config\ConfigFactoryInterface $config
    *   The configuration factory holding resource settings.
    * @param \Psr\Log\LoggerInterface $logger
    *   A logger instance.
    */
-  public function __construct(ResourcePluginManager $manager, ConfigFactoryInterface $config, LoggerInterface $logger) {
+  public function __construct(ResourcePluginManagerInterface $manager, ConfigFactoryInterface $config, LoggerInterface $logger) {
     $this->manager = $manager;
     $this->config = $config;
     $this->logger = $logger;
