// Copyright 2017 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.ui.input;

/// Service to receive input events.
///
/// Input devices can describe their capabilities using `DeviceDescriptor`
/// and register themselves with the `InputDeviceRegistry`.
@available(deprecated=12, removed=13)
closed protocol InputDeviceRegistry {
    /// Register a device with the capabilities described by `DeviceDescriptor`
    strict RegisterDevice(resource struct {
        descriptor DeviceDescriptor;
        input_device server_end:InputDevice;
    });
};

@available(deprecated=13)
closed protocol InputDevice {
    /// Dispatch an `InputReport` from the device `token`
    strict DispatchReport(struct {
        report InputReport;
    });
};
