// Copyright 2023 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.driver.component.test;

using zx;

closed protocol ZirconProtocol {
    strict ZirconMethod() -> () error zx.Status;
};

@transport("Driver")
closed protocol DriverProtocol {
    strict DriverMethod() -> () error zx.Status;
};

service ZirconService {
    device client_end:ZirconProtocol;
};

service DriverService {
    device client_end:DriverProtocol;
};
