// 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.
@available(added=7)
library fuchsia.ui.lifecycle;

/// An interface implemented by system UI components that wish to terminate gracefully.
@discoverable
protocol LifecycleController {
    /// The controller of this component has requested that this component terminate gracefully.
    /// If the component does not terminate itself in a timely manner, the client may forcibly
    /// terminate the component.
    ///
    /// The connection to the controller will be broken shortly before the target terminates;
    /// clients should listen for channel closure to learn the approximate moment that the target
    /// terminates.
    Terminate();
};
