"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var air_quality_exports = {};
__export(air_quality_exports, {
  AirQuality: () => AirQuality,
  AirQualityCluster: () => AirQualityCluster
});
module.exports = __toCommonJS(air_quality_exports);
var import_MutableCluster = require("../cluster/mutation/MutableCluster.js");
var import_BitmapSchema = require("../schema/BitmapSchema.js");
var import_Cluster = require("../cluster/Cluster.js");
var import_TlvNumber = require("../tlv/TlvNumber.js");
var import_ClusterRegistry = require("../cluster/ClusterRegistry.js");
/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
var AirQuality;
((AirQuality2) => {
  let Feature;
  ((Feature2) => {
    Feature2["Fair"] = "Fair";
    Feature2["Moderate"] = "Moderate";
    Feature2["VeryPoor"] = "VeryPoor";
    Feature2["ExtremelyPoor"] = "ExtremelyPoor";
  })(Feature = AirQuality2.Feature || (AirQuality2.Feature = {}));
  let AirQualityEnum;
  ((AirQualityEnum2) => {
    AirQualityEnum2[AirQualityEnum2["Unknown"] = 0] = "Unknown";
    AirQualityEnum2[AirQualityEnum2["Good"] = 1] = "Good";
    AirQualityEnum2[AirQualityEnum2["Fair"] = 2] = "Fair";
    AirQualityEnum2[AirQualityEnum2["Moderate"] = 3] = "Moderate";
    AirQualityEnum2[AirQualityEnum2["Poor"] = 4] = "Poor";
    AirQualityEnum2[AirQualityEnum2["VeryPoor"] = 5] = "VeryPoor";
    AirQualityEnum2[AirQualityEnum2["ExtremelyPoor"] = 6] = "ExtremelyPoor";
  })(AirQualityEnum = AirQuality2.AirQualityEnum || (AirQuality2.AirQualityEnum = {}));
  AirQuality2.Base = import_MutableCluster.MutableCluster.Component({
    id: 91,
    name: "AirQuality",
    revision: 1,
    features: {
      /**
       * Cluster supports the Fair air quality level
       */
      fair: (0, import_BitmapSchema.BitFlag)(0),
      /**
       * Cluster supports the Moderate air quality level
       */
      moderate: (0, import_BitmapSchema.BitFlag)(1),
      /**
       * Cluster supports the Very poor air quality level
       */
      veryPoor: (0, import_BitmapSchema.BitFlag)(2),
      /**
       * Cluster supports the Extremely poor air quality level
       */
      extremelyPoor: (0, import_BitmapSchema.BitFlag)(3)
    },
    attributes: {
      /**
       * Indicates a value from AirQualityEnum that is indicative of the currently measured air quality.
       *
       * @see {@link MatterSpecification.v142.Cluster} § 2.9.6.1
       */
      airQuality: (0, import_Cluster.Attribute)(0, (0, import_TlvNumber.TlvEnum)())
    },
    /**
     * This metadata controls which AirQualityCluster elements matter.js activates for specific feature
     * combinations.
     */
    extensions: import_MutableCluster.MutableCluster.Extensions()
  });
  AirQuality2.ClusterInstance = (0, import_MutableCluster.MutableCluster)(AirQuality2.Base);
  AirQuality2.Cluster = AirQuality2.ClusterInstance;
  AirQuality2.Complete = AirQuality2.Cluster;
})(AirQuality || (AirQuality = {}));
const AirQualityCluster = AirQuality.Cluster;
import_ClusterRegistry.ClusterRegistry.register(AirQuality.Complete);
//# sourceMappingURL=air-quality.js.map
