// Copyright 2021 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.lightsensor;

/// `Calibrator` is responsible for calibrating the raw data that comes from the
/// product-configured light sensor. It is only intended to be used internally.
@discoverable
@available(added=7, deprecated=9, removed=HEAD, legacy=true)
closed protocol Calibrator {
    /// Calibrates the supplied raw [Rgbc] and returns calibrated [Rgbc].
    strict Calibrate(struct {
        data Rgbc;
    }) -> (struct {
        data Rgbc;
    }) error Error;
};
