// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// ignore: deprecated_member_use
export 'package:test_api/backend.dart' show SuitePlatform, Runtime;
export 'package:test_core/src/runner/configuration.dart' show Configuration;
export 'package:test_core/src/runner/environment.dart'
    show PluginEnvironment, Environment;
export 'package:test_core/src/runner/hack_register_platform.dart'
    show registerPlatformPlugin;
export 'package:test_core/src/runner/platform.dart' show PlatformPlugin;
export 'package:test_core/src/runner/plugin/platform_helpers.dart'
    show deserializeSuite;
export 'package:test_core/src/runner/runner_suite.dart'
    show RunnerSuite, RunnerSuiteController;
export 'package:test_core/src/runner/suite.dart' show SuiteConfiguration;
