diff --git a/core/lib/Drupal/Core/TypedData/ComplexDataInterface.php b/core/lib/Drupal/Core/TypedData/ComplexDataInterface.php
index 56be874..1e43621 100644
--- a/core/lib/Drupal/Core/TypedData/ComplexDataInterface.php
+++ b/core/lib/Drupal/Core/TypedData/ComplexDataInterface.php
@@ -26,6 +26,14 @@
 interface ComplexDataInterface extends TraversableTypedDataInterface  {
 
   /**
+   * Gets the data definition.
+   *
+   * @return \Drupal\Core\TypedData\ComplexDataDefinitionInterface
+   *   The data definition object describing the complex data.
+   */
+  public function getDataDefinition();
+
+  /**
    * Gets a property object.
    *
    * @param $property_name
diff --git a/core/lib/Drupal/Core/TypedData/ListInterface.php b/core/lib/Drupal/Core/TypedData/ListInterface.php
index 5639ba8..39222f3 100644
--- a/core/lib/Drupal/Core/TypedData/ListInterface.php
+++ b/core/lib/Drupal/Core/TypedData/ListInterface.php
@@ -23,6 +23,14 @@
 interface ListInterface extends TraversableTypedDataInterface, \ArrayAccess, \Countable {
 
   /**
+   * Gets the data definition.
+   *
+   * @return \Drupal\Core\TypedData\ListDataDefinitionInterface
+   *   The data definition object describing the list.
+   */
+  public function getDataDefinition();
+
+  /**
    * Determines whether the list contains any non-empty items.
    *
    * @return bool
