/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import { SmokeCoAlarmServer as BaseSmokeCoAlarmServer } from "../behaviors/smoke-co-alarm/SmokeCoAlarmServer.js";
import { GroupsServer as BaseGroupsServer } from "../behaviors/groups/GroupsServer.js";
import {
  RelativeHumidityMeasurementServer as BaseRelativeHumidityMeasurementServer
} from "../behaviors/relative-humidity-measurement/RelativeHumidityMeasurementServer.js";
import {
  TemperatureMeasurementServer as BaseTemperatureMeasurementServer
} from "../behaviors/temperature-measurement/TemperatureMeasurementServer.js";
import {
  CarbonMonoxideConcentrationMeasurementServer as BaseCarbonMonoxideConcentrationMeasurementServer
} from "../behaviors/carbon-monoxide-concentration-measurement/CarbonMonoxideConcentrationMeasurementServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var SmokeCoAlarmRequirements;
((SmokeCoAlarmRequirements2) => {
  SmokeCoAlarmRequirements2.IdentifyServer = BaseIdentifyServer;
  SmokeCoAlarmRequirements2.SmokeCoAlarmServer = BaseSmokeCoAlarmServer;
  SmokeCoAlarmRequirements2.GroupsServer = BaseGroupsServer;
  SmokeCoAlarmRequirements2.RelativeHumidityMeasurementServer = BaseRelativeHumidityMeasurementServer;
  SmokeCoAlarmRequirements2.TemperatureMeasurementServer = BaseTemperatureMeasurementServer;
  SmokeCoAlarmRequirements2.CarbonMonoxideConcentrationMeasurementServer = BaseCarbonMonoxideConcentrationMeasurementServer;
  SmokeCoAlarmRequirements2.server = {
    mandatory: { Identify: SmokeCoAlarmRequirements2.IdentifyServer, SmokeCoAlarm: SmokeCoAlarmRequirements2.SmokeCoAlarmServer },
    optional: {
      Groups: SmokeCoAlarmRequirements2.GroupsServer,
      RelativeHumidityMeasurement: SmokeCoAlarmRequirements2.RelativeHumidityMeasurementServer,
      TemperatureMeasurement: SmokeCoAlarmRequirements2.TemperatureMeasurementServer,
      CarbonMonoxideConcentrationMeasurement: SmokeCoAlarmRequirements2.CarbonMonoxideConcentrationMeasurementServer
    }
  };
})(SmokeCoAlarmRequirements || (SmokeCoAlarmRequirements = {}));
const SmokeCoAlarmDeviceDefinition = MutableEndpoint({
  name: "SmokeCoAlarm",
  deviceType: 118,
  deviceRevision: 1,
  requirements: SmokeCoAlarmRequirements,
  behaviors: SupportedBehaviors(SmokeCoAlarmRequirements.server.mandatory.Identify)
});
Object.freeze(SmokeCoAlarmDeviceDefinition);
const SmokeCoAlarmDevice = SmokeCoAlarmDeviceDefinition;
export {
  SmokeCoAlarmDevice,
  SmokeCoAlarmDeviceDefinition,
  SmokeCoAlarmRequirements
};
//# sourceMappingURL=smoke-co-alarm.js.map
