Mode classes for metrics data model in the exporter package. (#1480)

* Mode classes for metrics data model in the exporter package. Consistent with trace.

* Fix test class coments.
diff --git a/api/src/main/java/io/opencensus/metrics/MetricRegistry.java b/api/src/main/java/io/opencensus/metrics/MetricRegistry.java
index c249d47..a9987b7 100644
--- a/api/src/main/java/io/opencensus/metrics/MetricRegistry.java
+++ b/api/src/main/java/io/opencensus/metrics/MetricRegistry.java
@@ -24,7 +24,7 @@
 
 /**
  * Creates and manages your application's set of metrics. The default implementation of this creates
- * a {@link MetricProducer} and registers it to the global {@link
+ * a {@link io.opencensus.metrics.export.MetricProducer} and registers it to the global {@link
  * io.opencensus.metrics.export.MetricProducerManager}.
  *
  * @since 0.17
diff --git a/api/src/main/java/io/opencensus/metrics/Distribution.java b/api/src/main/java/io/opencensus/metrics/export/Distribution.java
similarity index 99%
rename from api/src/main/java/io/opencensus/metrics/Distribution.java
rename to api/src/main/java/io/opencensus/metrics/export/Distribution.java
index 9294b83..dc9fa9e 100644
--- a/api/src/main/java/io/opencensus/metrics/Distribution.java
+++ b/api/src/main/java/io/opencensus/metrics/export/Distribution.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package io.opencensus.metrics;
+package io.opencensus.metrics.export;
 
 import com.google.auto.value.AutoValue;
 import io.opencensus.common.ExperimentalApi;
diff --git a/api/src/main/java/io/opencensus/metrics/Metric.java b/api/src/main/java/io/opencensus/metrics/export/Metric.java
similarity index 92%
rename from api/src/main/java/io/opencensus/metrics/Metric.java
rename to api/src/main/java/io/opencensus/metrics/export/Metric.java
index 0c108b5..07fe356 100644
--- a/api/src/main/java/io/opencensus/metrics/Metric.java
+++ b/api/src/main/java/io/opencensus/metrics/export/Metric.java
@@ -14,15 +14,15 @@
  * limitations under the License.
  */
 
-package io.opencensus.metrics;
+package io.opencensus.metrics.export;
 
 import com.google.auto.value.AutoValue;
 import io.opencensus.common.ExperimentalApi;
 import io.opencensus.internal.Utils;
-import io.opencensus.metrics.Value.ValueDistribution;
-import io.opencensus.metrics.Value.ValueDouble;
-import io.opencensus.metrics.Value.ValueLong;
-import io.opencensus.metrics.Value.ValueSummary;
+import io.opencensus.metrics.export.Value.ValueDistribution;
+import io.opencensus.metrics.export.Value.ValueDouble;
+import io.opencensus.metrics.export.Value.ValueLong;
+import io.opencensus.metrics.export.Value.ValueSummary;
 import java.util.List;
 import javax.annotation.concurrent.Immutable;
 
diff --git a/api/src/main/java/io/opencensus/metrics/MetricDescriptor.java b/api/src/main/java/io/opencensus/metrics/export/MetricDescriptor.java
similarity index 98%
rename from api/src/main/java/io/opencensus/metrics/MetricDescriptor.java
rename to api/src/main/java/io/opencensus/metrics/export/MetricDescriptor.java
index 5146cd8..a4629f8 100644
--- a/api/src/main/java/io/opencensus/metrics/MetricDescriptor.java
+++ b/api/src/main/java/io/opencensus/metrics/export/MetricDescriptor.java
@@ -14,11 +14,12 @@
  * limitations under the License.
  */
 
-package io.opencensus.metrics;
+package io.opencensus.metrics.export;
 
 import com.google.auto.value.AutoValue;
 import io.opencensus.common.ExperimentalApi;
 import io.opencensus.internal.Utils;
+import io.opencensus.metrics.LabelKey;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
diff --git a/api/src/main/java/io/opencensus/metrics/MetricProducer.java b/api/src/main/java/io/opencensus/metrics/export/MetricProducer.java
similarity index 92%
rename from api/src/main/java/io/opencensus/metrics/MetricProducer.java
rename to api/src/main/java/io/opencensus/metrics/export/MetricProducer.java
index 86f9732..739a0a9 100644
--- a/api/src/main/java/io/opencensus/metrics/MetricProducer.java
+++ b/api/src/main/java/io/opencensus/metrics/export/MetricProducer.java
@@ -14,10 +14,9 @@
  * limitations under the License.
  */
 
-package io.opencensus.metrics;
+package io.opencensus.metrics.export;
 
 import io.opencensus.common.ExperimentalApi;
-import io.opencensus.metrics.export.MetricProducerManager;
 import java.util.Collection;
 
 /**
diff --git a/api/src/main/java/io/opencensus/metrics/export/MetricProducerManager.java b/api/src/main/java/io/opencensus/metrics/export/MetricProducerManager.java
index fc86420..304d929 100644
--- a/api/src/main/java/io/opencensus/metrics/export/MetricProducerManager.java
+++ b/api/src/main/java/io/opencensus/metrics/export/MetricProducerManager.java
@@ -18,7 +18,6 @@
 
 import io.opencensus.common.ExperimentalApi;
 import io.opencensus.internal.Utils;
-import io.opencensus.metrics.MetricProducer;
 import java.util.Collections;
 import java.util.Set;
 import javax.annotation.concurrent.ThreadSafe;
diff --git a/api/src/main/java/io/opencensus/metrics/Point.java b/api/src/main/java/io/opencensus/metrics/export/Point.java
similarity index 97%
rename from api/src/main/java/io/opencensus/metrics/Point.java
rename to api/src/main/java/io/opencensus/metrics/export/Point.java
index 9ef7c15..1f382f9 100644
--- a/api/src/main/java/io/opencensus/metrics/Point.java
+++ b/api/src/main/java/io/opencensus/metrics/export/Point.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package io.opencensus.metrics;
+package io.opencensus.metrics.export;
 
 import com.google.auto.value.AutoValue;
 import io.opencensus.common.ExperimentalApi;
diff --git a/api/src/main/java/io/opencensus/metrics/Summary.java b/api/src/main/java/io/opencensus/metrics/export/Summary.java
similarity index 99%
rename from api/src/main/java/io/opencensus/metrics/Summary.java
rename to api/src/main/java/io/opencensus/metrics/export/Summary.java
index f23667b..c82ca96 100644
--- a/api/src/main/java/io/opencensus/metrics/Summary.java
+++ b/api/src/main/java/io/opencensus/metrics/export/Summary.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package io.opencensus.metrics;
+package io.opencensus.metrics.export;
 
 import com.google.auto.value.AutoValue;
 import io.opencensus.common.ExperimentalApi;
diff --git a/api/src/main/java/io/opencensus/metrics/TimeSeries.java b/api/src/main/java/io/opencensus/metrics/export/TimeSeries.java
similarity index 96%
rename from api/src/main/java/io/opencensus/metrics/TimeSeries.java
rename to api/src/main/java/io/opencensus/metrics/export/TimeSeries.java
index d504dad..959f55b 100644
--- a/api/src/main/java/io/opencensus/metrics/TimeSeries.java
+++ b/api/src/main/java/io/opencensus/metrics/export/TimeSeries.java
@@ -14,12 +14,14 @@
  * limitations under the License.
  */
 
-package io.opencensus.metrics;
+package io.opencensus.metrics.export;
 
 import com.google.auto.value.AutoValue;
 import io.opencensus.common.ExperimentalApi;
 import io.opencensus.common.Timestamp;
 import io.opencensus.internal.Utils;
+import io.opencensus.metrics.LabelKey;
+import io.opencensus.metrics.LabelValue;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
diff --git a/api/src/main/java/io/opencensus/metrics/Value.java b/api/src/main/java/io/opencensus/metrics/export/Value.java
similarity index 99%
rename from api/src/main/java/io/opencensus/metrics/Value.java
rename to api/src/main/java/io/opencensus/metrics/export/Value.java
index 1bc63b7..00a939c 100644
--- a/api/src/main/java/io/opencensus/metrics/Value.java
+++ b/api/src/main/java/io/opencensus/metrics/export/Value.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package io.opencensus.metrics;
+package io.opencensus.metrics.export;
 
 import com.google.auto.value.AutoValue;
 import io.opencensus.common.ExperimentalApi;
diff --git a/api/src/test/java/io/opencensus/metrics/DistributionTest.java b/api/src/test/java/io/opencensus/metrics/export/DistributionTest.java
similarity index 97%
rename from api/src/test/java/io/opencensus/metrics/DistributionTest.java
rename to api/src/test/java/io/opencensus/metrics/export/DistributionTest.java
index 5ee88dd..0be4b5d 100644
--- a/api/src/test/java/io/opencensus/metrics/DistributionTest.java
+++ b/api/src/test/java/io/opencensus/metrics/export/DistributionTest.java
@@ -14,14 +14,14 @@
  * limitations under the License.
  */
 
-package io.opencensus.metrics;
+package io.opencensus.metrics.export;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import com.google.common.testing.EqualsTester;
 import io.opencensus.common.Timestamp;
-import io.opencensus.metrics.Distribution.Bucket;
-import io.opencensus.metrics.Distribution.Exemplar;
+import io.opencensus.metrics.export.Distribution.Bucket;
+import io.opencensus.metrics.export.Distribution.Exemplar;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
diff --git a/api/src/test/java/io/opencensus/metrics/MetricDescriptorTest.java b/api/src/test/java/io/opencensus/metrics/export/MetricDescriptorTest.java
similarity index 96%
rename from api/src/test/java/io/opencensus/metrics/MetricDescriptorTest.java
rename to api/src/test/java/io/opencensus/metrics/export/MetricDescriptorTest.java
index 9c0a42f..502170c 100644
--- a/api/src/test/java/io/opencensus/metrics/MetricDescriptorTest.java
+++ b/api/src/test/java/io/opencensus/metrics/export/MetricDescriptorTest.java
@@ -14,12 +14,13 @@
  * limitations under the License.
  */
 
-package io.opencensus.metrics;
+package io.opencensus.metrics.export;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import com.google.common.testing.EqualsTester;
-import io.opencensus.metrics.MetricDescriptor.Type;
+import io.opencensus.metrics.LabelKey;
+import io.opencensus.metrics.export.MetricDescriptor.Type;
 import java.util.Arrays;
 import java.util.List;
 import org.hamcrest.CoreMatchers;
diff --git a/api/src/test/java/io/opencensus/metrics/export/MetricProducerManagerTest.java b/api/src/test/java/io/opencensus/metrics/export/MetricProducerManagerTest.java
index 0785492..1025427 100644
--- a/api/src/test/java/io/opencensus/metrics/export/MetricProducerManagerTest.java
+++ b/api/src/test/java/io/opencensus/metrics/export/MetricProducerManagerTest.java
@@ -18,7 +18,6 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import io.opencensus.metrics.MetricProducer;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/api/src/test/java/io/opencensus/metrics/MetricTest.java b/api/src/test/java/io/opencensus/metrics/export/MetricTest.java
similarity index 96%
rename from api/src/test/java/io/opencensus/metrics/MetricTest.java
rename to api/src/test/java/io/opencensus/metrics/export/MetricTest.java
index 37deed4..0b1ecf6 100644
--- a/api/src/test/java/io/opencensus/metrics/MetricTest.java
+++ b/api/src/test/java/io/opencensus/metrics/export/MetricTest.java
@@ -14,13 +14,15 @@
  * limitations under the License.
  */
 
-package io.opencensus.metrics;
+package io.opencensus.metrics.export;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import com.google.common.testing.EqualsTester;
 import io.opencensus.common.Timestamp;
-import io.opencensus.metrics.MetricDescriptor.Type;
+import io.opencensus.metrics.LabelKey;
+import io.opencensus.metrics.LabelValue;
+import io.opencensus.metrics.export.MetricDescriptor.Type;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
diff --git a/api/src/test/java/io/opencensus/metrics/PointTest.java b/api/src/test/java/io/opencensus/metrics/export/PointTest.java
similarity index 95%
rename from api/src/test/java/io/opencensus/metrics/PointTest.java
rename to api/src/test/java/io/opencensus/metrics/export/PointTest.java
index 708814c..da5b83d 100644
--- a/api/src/test/java/io/opencensus/metrics/PointTest.java
+++ b/api/src/test/java/io/opencensus/metrics/export/PointTest.java
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-package io.opencensus.metrics;
+package io.opencensus.metrics.export;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import com.google.common.testing.EqualsTester;
 import io.opencensus.common.Timestamp;
-import io.opencensus.metrics.Distribution.Bucket;
+import io.opencensus.metrics.export.Distribution.Bucket;
 import java.util.Arrays;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/api/src/test/java/io/opencensus/metrics/SummaryTest.java b/api/src/test/java/io/opencensus/metrics/export/SummaryTest.java
similarity index 97%
rename from api/src/test/java/io/opencensus/metrics/SummaryTest.java
rename to api/src/test/java/io/opencensus/metrics/export/SummaryTest.java
index 0b70d94..c10df04 100644
--- a/api/src/test/java/io/opencensus/metrics/SummaryTest.java
+++ b/api/src/test/java/io/opencensus/metrics/export/SummaryTest.java
@@ -14,13 +14,13 @@
  * limitations under the License.
  */
 
-package io.opencensus.metrics;
+package io.opencensus.metrics.export;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import com.google.common.testing.EqualsTester;
-import io.opencensus.metrics.Summary.Snapshot;
-import io.opencensus.metrics.Summary.Snapshot.ValueAtPercentile;
+import io.opencensus.metrics.export.Summary.Snapshot;
+import io.opencensus.metrics.export.Summary.Snapshot.ValueAtPercentile;
 import java.util.Collections;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/api/src/test/java/io/opencensus/metrics/TimeSeriesTest.java b/api/src/test/java/io/opencensus/metrics/export/TimeSeriesTest.java
similarity index 98%
rename from api/src/test/java/io/opencensus/metrics/TimeSeriesTest.java
rename to api/src/test/java/io/opencensus/metrics/export/TimeSeriesTest.java
index 07dff97..3181254 100644
--- a/api/src/test/java/io/opencensus/metrics/TimeSeriesTest.java
+++ b/api/src/test/java/io/opencensus/metrics/export/TimeSeriesTest.java
@@ -14,12 +14,13 @@
  * limitations under the License.
  */
 
-package io.opencensus.metrics;
+package io.opencensus.metrics.export;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import com.google.common.testing.EqualsTester;
 import io.opencensus.common.Timestamp;
+import io.opencensus.metrics.LabelValue;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
diff --git a/api/src/test/java/io/opencensus/metrics/ValueTest.java b/api/src/test/java/io/opencensus/metrics/export/ValueTest.java
similarity index 91%
rename from api/src/test/java/io/opencensus/metrics/ValueTest.java
rename to api/src/test/java/io/opencensus/metrics/export/ValueTest.java
index a65202a..3758ed2 100644
--- a/api/src/test/java/io/opencensus/metrics/ValueTest.java
+++ b/api/src/test/java/io/opencensus/metrics/export/ValueTest.java
@@ -14,20 +14,20 @@
  * limitations under the License.
  */
 
-package io.opencensus.metrics;
+package io.opencensus.metrics.export;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import com.google.common.testing.EqualsTester;
 import io.opencensus.common.Function;
 import io.opencensus.common.Functions;
-import io.opencensus.metrics.Distribution.Bucket;
-import io.opencensus.metrics.Summary.Snapshot;
-import io.opencensus.metrics.Summary.Snapshot.ValueAtPercentile;
-import io.opencensus.metrics.Value.ValueDistribution;
-import io.opencensus.metrics.Value.ValueDouble;
-import io.opencensus.metrics.Value.ValueLong;
-import io.opencensus.metrics.Value.ValueSummary;
+import io.opencensus.metrics.export.Distribution.Bucket;
+import io.opencensus.metrics.export.Summary.Snapshot;
+import io.opencensus.metrics.export.Summary.Snapshot.ValueAtPercentile;
+import io.opencensus.metrics.export.Value.ValueDistribution;
+import io.opencensus.metrics.export.Value.ValueDouble;
+import io.opencensus.metrics.export.Value.ValueLong;
+import io.opencensus.metrics.export.Value.ValueSummary;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
diff --git a/impl_core/src/main/java/io/opencensus/implcore/metrics/Gauge.java b/impl_core/src/main/java/io/opencensus/implcore/metrics/Gauge.java
index e649806..30e5bf3 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/metrics/Gauge.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/metrics/Gauge.java
@@ -23,12 +23,12 @@
 import io.opencensus.common.ToLongFunction;
 import io.opencensus.metrics.LabelKey;
 import io.opencensus.metrics.LabelValue;
-import io.opencensus.metrics.Metric;
-import io.opencensus.metrics.MetricDescriptor;
-import io.opencensus.metrics.MetricDescriptor.Type;
-import io.opencensus.metrics.Point;
-import io.opencensus.metrics.TimeSeries;
-import io.opencensus.metrics.Value;
+import io.opencensus.metrics.export.Metric;
+import io.opencensus.metrics.export.MetricDescriptor;
+import io.opencensus.metrics.export.MetricDescriptor.Type;
+import io.opencensus.metrics.export.Point;
+import io.opencensus.metrics.export.TimeSeries;
+import io.opencensus.metrics.export.Value;
 import java.util.Collections;
 import java.util.List;
 
diff --git a/impl_core/src/main/java/io/opencensus/implcore/metrics/MetricRegistryImpl.java b/impl_core/src/main/java/io/opencensus/implcore/metrics/MetricRegistryImpl.java
index 642a951..3a30fd3 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/metrics/MetricRegistryImpl.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/metrics/MetricRegistryImpl.java
@@ -25,9 +25,9 @@
 import io.opencensus.implcore.metrics.Gauge.LongGauge;
 import io.opencensus.metrics.LabelKey;
 import io.opencensus.metrics.LabelValue;
-import io.opencensus.metrics.Metric;
-import io.opencensus.metrics.MetricProducer;
 import io.opencensus.metrics.MetricRegistry;
+import io.opencensus.metrics.export.Metric;
+import io.opencensus.metrics.export.MetricProducer;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
diff --git a/impl_core/src/main/java/io/opencensus/implcore/metrics/export/MetricProducerManagerImpl.java b/impl_core/src/main/java/io/opencensus/implcore/metrics/export/MetricProducerManagerImpl.java
index fc9db5c..6f585a1 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/metrics/export/MetricProducerManagerImpl.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/metrics/export/MetricProducerManagerImpl.java
@@ -17,7 +17,7 @@
 package io.opencensus.implcore.metrics.export;
 
 import com.google.common.base.Preconditions;
-import io.opencensus.metrics.MetricProducer;
+import io.opencensus.metrics.export.MetricProducer;
 import io.opencensus.metrics.export.MetricProducerManager;
 import java.util.Collections;
 import java.util.LinkedHashSet;
diff --git a/impl_core/src/main/java/io/opencensus/implcore/stats/MeasureToViewMap.java b/impl_core/src/main/java/io/opencensus/implcore/stats/MeasureToViewMap.java
index 2e28991..5da0cad 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/stats/MeasureToViewMap.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/stats/MeasureToViewMap.java
@@ -23,7 +23,7 @@
 import io.opencensus.common.Clock;
 import io.opencensus.common.Timestamp;
 import io.opencensus.implcore.internal.CurrentState.State;
-import io.opencensus.metrics.Metric;
+import io.opencensus.metrics.export.Metric;
 import io.opencensus.stats.Measure;
 import io.opencensus.stats.Measurement;
 import io.opencensus.stats.View;
diff --git a/impl_core/src/main/java/io/opencensus/implcore/stats/MetricProducerImpl.java b/impl_core/src/main/java/io/opencensus/implcore/stats/MetricProducerImpl.java
index 31ef6be..7bf9257 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/stats/MetricProducerImpl.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/stats/MetricProducerImpl.java
@@ -16,8 +16,8 @@
 
 package io.opencensus.implcore.stats;
 
-import io.opencensus.metrics.Metric;
-import io.opencensus.metrics.MetricProducer;
+import io.opencensus.metrics.export.Metric;
+import io.opencensus.metrics.export.MetricProducer;
 import java.util.Collection;
 import javax.annotation.concurrent.ThreadSafe;
 
diff --git a/impl_core/src/main/java/io/opencensus/implcore/stats/MetricUtils.java b/impl_core/src/main/java/io/opencensus/implcore/stats/MetricUtils.java
index cd1e536..0dfb1d2 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/stats/MetricUtils.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/stats/MetricUtils.java
@@ -21,8 +21,8 @@
 import io.opencensus.common.Functions;
 import io.opencensus.metrics.LabelKey;
 import io.opencensus.metrics.LabelValue;
-import io.opencensus.metrics.MetricDescriptor;
-import io.opencensus.metrics.MetricDescriptor.Type;
+import io.opencensus.metrics.export.MetricDescriptor;
+import io.opencensus.metrics.export.MetricDescriptor.Type;
 import io.opencensus.stats.Aggregation;
 import io.opencensus.stats.Measure;
 import io.opencensus.stats.View;
diff --git a/impl_core/src/main/java/io/opencensus/implcore/stats/MutableAggregation.java b/impl_core/src/main/java/io/opencensus/implcore/stats/MutableAggregation.java
index eaf440f..83beaea 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/stats/MutableAggregation.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/stats/MutableAggregation.java
@@ -21,9 +21,9 @@
 
 import com.google.common.annotations.VisibleForTesting;
 import io.opencensus.common.Timestamp;
-import io.opencensus.metrics.Distribution;
-import io.opencensus.metrics.Point;
-import io.opencensus.metrics.Value;
+import io.opencensus.metrics.export.Distribution;
+import io.opencensus.metrics.export.Point;
+import io.opencensus.metrics.export.Value;
 import io.opencensus.stats.Aggregation;
 import io.opencensus.stats.AggregationData;
 import io.opencensus.stats.AggregationData.DistributionData;
diff --git a/impl_core/src/main/java/io/opencensus/implcore/stats/MutableViewData.java b/impl_core/src/main/java/io/opencensus/implcore/stats/MutableViewData.java
index 80f60ce..0d25b29 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/stats/MutableViewData.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/stats/MutableViewData.java
@@ -33,11 +33,11 @@
 import io.opencensus.implcore.internal.CheckerFrameworkUtils;
 import io.opencensus.implcore.internal.CurrentState.State;
 import io.opencensus.metrics.LabelValue;
-import io.opencensus.metrics.Metric;
-import io.opencensus.metrics.MetricDescriptor;
-import io.opencensus.metrics.MetricDescriptor.Type;
-import io.opencensus.metrics.Point;
-import io.opencensus.metrics.TimeSeries;
+import io.opencensus.metrics.export.Metric;
+import io.opencensus.metrics.export.MetricDescriptor;
+import io.opencensus.metrics.export.MetricDescriptor.Type;
+import io.opencensus.metrics.export.Point;
+import io.opencensus.metrics.export.TimeSeries;
 import io.opencensus.stats.Aggregation;
 import io.opencensus.stats.AggregationData;
 import io.opencensus.stats.Measure;
diff --git a/impl_core/src/main/java/io/opencensus/implcore/stats/StatsComponentImplBase.java b/impl_core/src/main/java/io/opencensus/implcore/stats/StatsComponentImplBase.java
index 72791f0..741b399 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/stats/StatsComponentImplBase.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/stats/StatsComponentImplBase.java
@@ -21,8 +21,8 @@
 import io.opencensus.implcore.internal.CurrentState;
 import io.opencensus.implcore.internal.CurrentState.State;
 import io.opencensus.implcore.internal.EventQueue;
-import io.opencensus.metrics.MetricProducer;
 import io.opencensus.metrics.Metrics;
+import io.opencensus.metrics.export.MetricProducer;
 import io.opencensus.stats.StatsCollectionState;
 import io.opencensus.stats.StatsComponent;
 
diff --git a/impl_core/src/main/java/io/opencensus/implcore/stats/StatsManager.java b/impl_core/src/main/java/io/opencensus/implcore/stats/StatsManager.java
index a58b9a5..17e99d4 100644
--- a/impl_core/src/main/java/io/opencensus/implcore/stats/StatsManager.java
+++ b/impl_core/src/main/java/io/opencensus/implcore/stats/StatsManager.java
@@ -22,7 +22,7 @@
 import io.opencensus.implcore.internal.CurrentState;
 import io.opencensus.implcore.internal.CurrentState.State;
 import io.opencensus.implcore.internal.EventQueue;
-import io.opencensus.metrics.Metric;
+import io.opencensus.metrics.export.Metric;
 import io.opencensus.stats.View;
 import io.opencensus.stats.ViewData;
 import io.opencensus.tags.TagContext;
diff --git a/impl_core/src/test/java/io/opencensus/implcore/metrics/GaugeTest.java b/impl_core/src/test/java/io/opencensus/implcore/metrics/GaugeTest.java
index e1c1787..161ad34 100644
--- a/impl_core/src/test/java/io/opencensus/implcore/metrics/GaugeTest.java
+++ b/impl_core/src/test/java/io/opencensus/implcore/metrics/GaugeTest.java
@@ -25,12 +25,12 @@
 import io.opencensus.implcore.metrics.Gauge.LongGauge;
 import io.opencensus.metrics.LabelKey;
 import io.opencensus.metrics.LabelValue;
-import io.opencensus.metrics.Metric;
-import io.opencensus.metrics.MetricDescriptor;
-import io.opencensus.metrics.MetricDescriptor.Type;
-import io.opencensus.metrics.Point;
-import io.opencensus.metrics.TimeSeries;
-import io.opencensus.metrics.Value;
+import io.opencensus.metrics.export.Metric;
+import io.opencensus.metrics.export.MetricDescriptor;
+import io.opencensus.metrics.export.MetricDescriptor.Type;
+import io.opencensus.metrics.export.Point;
+import io.opencensus.metrics.export.TimeSeries;
+import io.opencensus.metrics.export.Value;
 import io.opencensus.testing.common.TestClock;
 import java.util.Collections;
 import java.util.List;
diff --git a/impl_core/src/test/java/io/opencensus/implcore/metrics/MetricRegistryImplTest.java b/impl_core/src/test/java/io/opencensus/implcore/metrics/MetricRegistryImplTest.java
index 0b75a6e..3a5cb49 100644
--- a/impl_core/src/test/java/io/opencensus/implcore/metrics/MetricRegistryImplTest.java
+++ b/impl_core/src/test/java/io/opencensus/implcore/metrics/MetricRegistryImplTest.java
@@ -23,12 +23,12 @@
 import io.opencensus.common.ToLongFunction;
 import io.opencensus.metrics.LabelKey;
 import io.opencensus.metrics.LabelValue;
-import io.opencensus.metrics.Metric;
-import io.opencensus.metrics.MetricDescriptor;
-import io.opencensus.metrics.MetricDescriptor.Type;
-import io.opencensus.metrics.Point;
-import io.opencensus.metrics.TimeSeries;
-import io.opencensus.metrics.Value;
+import io.opencensus.metrics.export.Metric;
+import io.opencensus.metrics.export.MetricDescriptor;
+import io.opencensus.metrics.export.MetricDescriptor.Type;
+import io.opencensus.metrics.export.Point;
+import io.opencensus.metrics.export.TimeSeries;
+import io.opencensus.metrics.export.Value;
 import io.opencensus.testing.common.TestClock;
 import java.util.Collections;
 import java.util.LinkedHashMap;
diff --git a/impl_core/src/test/java/io/opencensus/implcore/metrics/export/MetricProducerManagerImplTest.java b/impl_core/src/test/java/io/opencensus/implcore/metrics/export/MetricProducerManagerImplTest.java
index 7f2ec15..e549dad 100644
--- a/impl_core/src/test/java/io/opencensus/implcore/metrics/export/MetricProducerManagerImplTest.java
+++ b/impl_core/src/test/java/io/opencensus/implcore/metrics/export/MetricProducerManagerImplTest.java
@@ -18,7 +18,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import io.opencensus.metrics.MetricProducer;
+import io.opencensus.metrics.export.MetricProducer;
 import io.opencensus.metrics.export.MetricProducerManager;
 import java.util.Set;
 import org.junit.Before;
diff --git a/impl_core/src/test/java/io/opencensus/implcore/stats/MetricUtilsTest.java b/impl_core/src/test/java/io/opencensus/implcore/stats/MetricUtilsTest.java
index 7cc8d98..66e971f 100644
--- a/impl_core/src/test/java/io/opencensus/implcore/stats/MetricUtilsTest.java
+++ b/impl_core/src/test/java/io/opencensus/implcore/stats/MetricUtilsTest.java
@@ -22,8 +22,8 @@
 import io.opencensus.common.Timestamp;
 import io.opencensus.metrics.LabelKey;
 import io.opencensus.metrics.LabelValue;
-import io.opencensus.metrics.MetricDescriptor;
-import io.opencensus.metrics.MetricDescriptor.Type;
+import io.opencensus.metrics.export.MetricDescriptor;
+import io.opencensus.metrics.export.MetricDescriptor.Type;
 import io.opencensus.stats.Aggregation.Count;
 import io.opencensus.stats.Aggregation.Distribution;
 import io.opencensus.stats.Aggregation.LastValue;
diff --git a/impl_core/src/test/java/io/opencensus/implcore/stats/MutableAggregationTest.java b/impl_core/src/test/java/io/opencensus/implcore/stats/MutableAggregationTest.java
index ed85dde..fced533 100644
--- a/impl_core/src/test/java/io/opencensus/implcore/stats/MutableAggregationTest.java
+++ b/impl_core/src/test/java/io/opencensus/implcore/stats/MutableAggregationTest.java
@@ -28,9 +28,10 @@
 import io.opencensus.implcore.stats.MutableAggregation.MutableMean;
 import io.opencensus.implcore.stats.MutableAggregation.MutableSumDouble;
 import io.opencensus.implcore.stats.MutableAggregation.MutableSumLong;
-import io.opencensus.metrics.Distribution.Bucket;
-import io.opencensus.metrics.Point;
-import io.opencensus.metrics.Value;
+import io.opencensus.metrics.export.Distribution;
+import io.opencensus.metrics.export.Distribution.Bucket;
+import io.opencensus.metrics.export.Point;
+import io.opencensus.metrics.export.Value;
 import io.opencensus.stats.AggregationData;
 import io.opencensus.stats.AggregationData.CountData;
 import io.opencensus.stats.AggregationData.DistributionData;
@@ -300,7 +301,7 @@
         .isEqualTo(
             Point.create(
                 Value.distributionValue(
-                    io.opencensus.metrics.Distribution.create(
+                    Distribution.create(
                         0,
                         0,
                         0,