/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
/*** THIS FILE IS GENERATED, DO NOT EDIT ***/
import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
import { Attribute, OptionalAttribute } from "../cluster/Cluster.js";
import { Identity } from "#general";
export declare namespace IlluminanceMeasurement {
    /**
     * @see {@link MatterSpecification.v142.Cluster} § 2.2.4.1
     */
    enum LightSensorType {
        /**
         * Indicates photodiode sensor type
         */
        Photodiode = 0,
        /**
         * Indicates CMOS sensor type
         */
        Cmos = 1
    }
    /**
     * @see {@link Cluster}
     */
    const ClusterInstance: MutableCluster<{
        readonly id: 1024;
        readonly name: "IlluminanceMeasurement";
        readonly revision: 3;
        readonly attributes: {
            /**
             * Indicates the illuminance in Lux (symbol lx) as follows:
             *
             *   • MeasuredValue = 10,000 x log10(illuminance) + 1,
             *
             * where 1 lx <= illuminance <= 3.576 Mlx, corresponding to a MeasuredValue in the range 1 to 0xFFFE. The
             * MeasuredValue attribute can take the following values:
             *
             *   • 0 indicates a value of illuminance that is too low to be measured,
             *
             *   • MinMeasuredValue <= MeasuredValue <= MaxMeasuredValue under normal circumstances,
             *
             *   • null indicates that the illuminance measurement is invalid.
             *
             * The MeasuredValue attribute is updated continuously as new measurements are made.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.2.5.1
             */
            readonly measuredValue: Attribute<number | null, any>;
            /**
             * Indicates the minimum value of MeasuredValue that can be measured. A value of null indicates that this
             * attribute is not defined. See Measured Value for more details.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.2.5.2
             */
            readonly minMeasuredValue: Attribute<number | null, any>;
            /**
             * Indicates the maximum value of MeasuredValue that can be measured. A value of null indicates that this
             * attribute is not defined. See Measured Value for more details.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.2.5.3
             */
            readonly maxMeasuredValue: Attribute<number | null, any>;
            /**
             * See Measured Value.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.2.5.4
             */
            readonly tolerance: OptionalAttribute<number, any>;
            /**
             * Indicates the electronic type of the light sensor. This attribute shall be set to one of the non-reserved
             * values listed in LightSensorTypeEnum or null in case the sensor type is unknown.
             *
             * @see {@link MatterSpecification.v142.Cluster} § 2.2.5.5
             */
            readonly lightSensorType: OptionalAttribute<number | null, any>;
        };
    }, []>;
    /**
     * The Illuminance Measurement cluster provides an interface to illuminance measurement functionality, including
     * configuration and provision of notifications of illuminance measurements.
     *
     * @see {@link MatterSpecification.v142.Cluster} § 2.2
     */
    interface Cluster extends Identity<typeof ClusterInstance> {
    }
    const Cluster: Cluster;
    const Complete: Cluster;
}
export type IlluminanceMeasurementCluster = IlluminanceMeasurement.Cluster;
export declare const IlluminanceMeasurementCluster: IlluminanceMeasurement.Cluster;
//# sourceMappingURL=illuminance-measurement.d.ts.map