/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import { AirQualityServer as BaseAirQualityServer } from "../behaviors/air-quality/AirQualityServer.js";
import {
  TemperatureMeasurementServer as BaseTemperatureMeasurementServer
} from "../behaviors/temperature-measurement/TemperatureMeasurementServer.js";
import {
  RelativeHumidityMeasurementServer as BaseRelativeHumidityMeasurementServer
} from "../behaviors/relative-humidity-measurement/RelativeHumidityMeasurementServer.js";
import {
  CarbonMonoxideConcentrationMeasurementServer as BaseCarbonMonoxideConcentrationMeasurementServer
} from "../behaviors/carbon-monoxide-concentration-measurement/CarbonMonoxideConcentrationMeasurementServer.js";
import {
  CarbonDioxideConcentrationMeasurementServer as BaseCarbonDioxideConcentrationMeasurementServer
} from "../behaviors/carbon-dioxide-concentration-measurement/CarbonDioxideConcentrationMeasurementServer.js";
import {
  NitrogenDioxideConcentrationMeasurementServer as BaseNitrogenDioxideConcentrationMeasurementServer
} from "../behaviors/nitrogen-dioxide-concentration-measurement/NitrogenDioxideConcentrationMeasurementServer.js";
import {
  OzoneConcentrationMeasurementServer as BaseOzoneConcentrationMeasurementServer
} from "../behaviors/ozone-concentration-measurement/OzoneConcentrationMeasurementServer.js";
import {
  FormaldehydeConcentrationMeasurementServer as BaseFormaldehydeConcentrationMeasurementServer
} from "../behaviors/formaldehyde-concentration-measurement/FormaldehydeConcentrationMeasurementServer.js";
import {
  Pm1ConcentrationMeasurementServer as BasePm1ConcentrationMeasurementServer
} from "../behaviors/pm1-concentration-measurement/Pm1ConcentrationMeasurementServer.js";
import {
  Pm25ConcentrationMeasurementServer as BasePm25ConcentrationMeasurementServer
} from "../behaviors/pm25-concentration-measurement/Pm25ConcentrationMeasurementServer.js";
import {
  Pm10ConcentrationMeasurementServer as BasePm10ConcentrationMeasurementServer
} from "../behaviors/pm10-concentration-measurement/Pm10ConcentrationMeasurementServer.js";
import {
  RadonConcentrationMeasurementServer as BaseRadonConcentrationMeasurementServer
} from "../behaviors/radon-concentration-measurement/RadonConcentrationMeasurementServer.js";
import {
  TotalVolatileOrganicCompoundsConcentrationMeasurementServer as BaseTotalVolatileOrganicCompoundsConcentrationMeasurementServer
} from "../behaviors/total-volatile-organic-compounds-concentration-measurement/TotalVolatileOrganicCompoundsConcentrationMeasurementServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var AirQualitySensorRequirements;
((AirQualitySensorRequirements2) => {
  AirQualitySensorRequirements2.IdentifyServer = BaseIdentifyServer;
  AirQualitySensorRequirements2.AirQualityServer = BaseAirQualityServer;
  AirQualitySensorRequirements2.TemperatureMeasurementServer = BaseTemperatureMeasurementServer;
  AirQualitySensorRequirements2.RelativeHumidityMeasurementServer = BaseRelativeHumidityMeasurementServer;
  AirQualitySensorRequirements2.CarbonMonoxideConcentrationMeasurementServer = BaseCarbonMonoxideConcentrationMeasurementServer;
  AirQualitySensorRequirements2.CarbonDioxideConcentrationMeasurementServer = BaseCarbonDioxideConcentrationMeasurementServer;
  AirQualitySensorRequirements2.NitrogenDioxideConcentrationMeasurementServer = BaseNitrogenDioxideConcentrationMeasurementServer;
  AirQualitySensorRequirements2.OzoneConcentrationMeasurementServer = BaseOzoneConcentrationMeasurementServer;
  AirQualitySensorRequirements2.FormaldehydeConcentrationMeasurementServer = BaseFormaldehydeConcentrationMeasurementServer;
  AirQualitySensorRequirements2.Pm1ConcentrationMeasurementServer = BasePm1ConcentrationMeasurementServer;
  AirQualitySensorRequirements2.Pm25ConcentrationMeasurementServer = BasePm25ConcentrationMeasurementServer;
  AirQualitySensorRequirements2.Pm10ConcentrationMeasurementServer = BasePm10ConcentrationMeasurementServer;
  AirQualitySensorRequirements2.RadonConcentrationMeasurementServer = BaseRadonConcentrationMeasurementServer;
  AirQualitySensorRequirements2.TotalVolatileOrganicCompoundsConcentrationMeasurementServer = BaseTotalVolatileOrganicCompoundsConcentrationMeasurementServer;
  AirQualitySensorRequirements2.server = {
    mandatory: { Identify: AirQualitySensorRequirements2.IdentifyServer, AirQuality: AirQualitySensorRequirements2.AirQualityServer },
    optional: {
      TemperatureMeasurement: AirQualitySensorRequirements2.TemperatureMeasurementServer,
      RelativeHumidityMeasurement: AirQualitySensorRequirements2.RelativeHumidityMeasurementServer,
      CarbonMonoxideConcentrationMeasurement: AirQualitySensorRequirements2.CarbonMonoxideConcentrationMeasurementServer,
      CarbonDioxideConcentrationMeasurement: AirQualitySensorRequirements2.CarbonDioxideConcentrationMeasurementServer,
      NitrogenDioxideConcentrationMeasurement: AirQualitySensorRequirements2.NitrogenDioxideConcentrationMeasurementServer,
      OzoneConcentrationMeasurement: AirQualitySensorRequirements2.OzoneConcentrationMeasurementServer,
      FormaldehydeConcentrationMeasurement: AirQualitySensorRequirements2.FormaldehydeConcentrationMeasurementServer,
      Pm1ConcentrationMeasurement: AirQualitySensorRequirements2.Pm1ConcentrationMeasurementServer,
      Pm25ConcentrationMeasurement: AirQualitySensorRequirements2.Pm25ConcentrationMeasurementServer,
      Pm10ConcentrationMeasurement: AirQualitySensorRequirements2.Pm10ConcentrationMeasurementServer,
      RadonConcentrationMeasurement: AirQualitySensorRequirements2.RadonConcentrationMeasurementServer,
      TotalVolatileOrganicCompoundsConcentrationMeasurement: AirQualitySensorRequirements2.TotalVolatileOrganicCompoundsConcentrationMeasurementServer
    }
  };
})(AirQualitySensorRequirements || (AirQualitySensorRequirements = {}));
const AirQualitySensorDeviceDefinition = MutableEndpoint({
  name: "AirQualitySensor",
  deviceType: 44,
  deviceRevision: 1,
  requirements: AirQualitySensorRequirements,
  behaviors: SupportedBehaviors(
    AirQualitySensorRequirements.server.mandatory.Identify,
    AirQualitySensorRequirements.server.mandatory.AirQuality
  )
});
Object.freeze(AirQualitySensorDeviceDefinition);
const AirQualitySensorDevice = AirQualitySensorDeviceDefinition;
export {
  AirQualitySensorDevice,
  AirQualitySensorDeviceDefinition,
  AirQualitySensorRequirements
};
//# sourceMappingURL=air-quality-sensor.js.map
