/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import { OnOffServer as BaseOnOffServer } from "../behaviors/on-off/OnOffServer.js";
import { ThermostatServer as BaseThermostatServer } from "../behaviors/thermostat/ThermostatServer.js";
import { GroupsServer as BaseGroupsServer } from "../behaviors/groups/GroupsServer.js";
import {
  ScenesManagementServer as BaseScenesManagementServer
} from "../behaviors/scenes-management/ScenesManagementServer.js";
import { FanControlServer as BaseFanControlServer } from "../behaviors/fan-control/FanControlServer.js";
import {
  ThermostatUserInterfaceConfigurationServer as BaseThermostatUserInterfaceConfigurationServer
} from "../behaviors/thermostat-user-interface-configuration/ThermostatUserInterfaceConfigurationServer.js";
import {
  TemperatureMeasurementServer as BaseTemperatureMeasurementServer
} from "../behaviors/temperature-measurement/TemperatureMeasurementServer.js";
import {
  RelativeHumidityMeasurementServer as BaseRelativeHumidityMeasurementServer
} from "../behaviors/relative-humidity-measurement/RelativeHumidityMeasurementServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var RoomAirConditionerRequirements;
((RoomAirConditionerRequirements2) => {
  RoomAirConditionerRequirements2.IdentifyServer = BaseIdentifyServer;
  RoomAirConditionerRequirements2.OnOffServer = BaseOnOffServer.with("DeadFrontBehavior");
  RoomAirConditionerRequirements2.ThermostatServer = BaseThermostatServer;
  RoomAirConditionerRequirements2.GroupsServer = BaseGroupsServer;
  RoomAirConditionerRequirements2.ScenesManagementServer = BaseScenesManagementServer;
  RoomAirConditionerRequirements2.FanControlServer = BaseFanControlServer;
  RoomAirConditionerRequirements2.ThermostatUserInterfaceConfigurationServer = BaseThermostatUserInterfaceConfigurationServer;
  RoomAirConditionerRequirements2.TemperatureMeasurementServer = BaseTemperatureMeasurementServer;
  RoomAirConditionerRequirements2.RelativeHumidityMeasurementServer = BaseRelativeHumidityMeasurementServer;
  RoomAirConditionerRequirements2.server = {
    mandatory: { Identify: RoomAirConditionerRequirements2.IdentifyServer, OnOff: RoomAirConditionerRequirements2.OnOffServer, Thermostat: RoomAirConditionerRequirements2.ThermostatServer },
    optional: {
      Groups: RoomAirConditionerRequirements2.GroupsServer,
      ScenesManagement: RoomAirConditionerRequirements2.ScenesManagementServer,
      FanControl: RoomAirConditionerRequirements2.FanControlServer,
      ThermostatUserInterfaceConfiguration: RoomAirConditionerRequirements2.ThermostatUserInterfaceConfigurationServer,
      TemperatureMeasurement: RoomAirConditionerRequirements2.TemperatureMeasurementServer,
      RelativeHumidityMeasurement: RoomAirConditionerRequirements2.RelativeHumidityMeasurementServer
    }
  };
})(RoomAirConditionerRequirements || (RoomAirConditionerRequirements = {}));
const RoomAirConditionerDeviceDefinition = MutableEndpoint({
  name: "RoomAirConditioner",
  deviceType: 114,
  deviceRevision: 2,
  requirements: RoomAirConditionerRequirements,
  behaviors: SupportedBehaviors(
    RoomAirConditionerRequirements.server.mandatory.Identify,
    RoomAirConditionerRequirements.server.mandatory.OnOff
  )
});
Object.freeze(RoomAirConditionerDeviceDefinition);
const RoomAirConditionerDevice = RoomAirConditionerDeviceDefinition;
export {
  RoomAirConditionerDevice,
  RoomAirConditionerDeviceDefinition,
  RoomAirConditionerRequirements
};
//# sourceMappingURL=room-air-conditioner.js.map
