// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

library fuchsia.time;
using zx;

/// Emits `UtcUpdated` events when the serving program changes the UTC offset tracked by
/// `ZX_CLOCK_UTC`.
///
/// Do not take this API as a dependency, it will be deleted in the near future.
protocol DeprecatedNetworkSync {
    /// Notifies the client that UTC has changed, along with the monotonic clock's value when the
    /// change was made.
    -> UtcUpdated(zx.time update_time);
};
