// 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=16)
library fuchsia.developer.ffxdaemonlifecycle;

open protocol DaemonLifecycleControl {
    /// Requests for the Daemon to exit. Receives 'true' to indicate the request
    /// was received and the Daemon will then shut down shortly thereafter.
    @selector("fuchsia.developer.ffx/Daemon.Quit")
    strict Quit() -> (struct {
        success bool;
    });

    // Retrieves version information about this daemon instance.
    @selector("fuchsia.developer.ffx/Daemon.GetVersionInfo")
    strict GetVersionInfo() -> (struct {
        info VersionInfo;
    });
};
