// Copyright (c) 2017, 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.

/// A handle to start, and return the current port of, a diagnostic server.
abstract class DiagnosticServer {
  /// Return the port of the diagnostic web server. If the server is not running
  /// this call will start the server.
  Future<int> getServerPort();
}
