// 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.recovery.ui;

using zx;

/// Information provided through the FactoryResetCountdown protocol on the
/// current factory reset state.
type FactoryResetCountdownState = table {
    /// The time of when factory reset is scheduled to be triggered when a
    /// countdown for factory reset is in progress with respect to the monotonic
    /// clock. This field is left unpopulated if no reset is scheduled.
    1: scheduled_reset_time zx.Time;
};

/// Protocol to watch for changes when a factory reset countdown is started or
/// cancelled. An immediate factory reset does not start a countdown.
@discoverable
closed protocol FactoryResetCountdown {
    /// Hanging get that returns when a factory reset is scheduled or a
    /// scheduled factory reset is cancelled. Will return immediately on first
    /// call per connection and then on change after that.
    strict Watch() -> (struct {
        state FactoryResetCountdownState;
    });
};
