/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { ThermostatServer as BaseThermostatServer } from "../behaviors/thermostat/ThermostatServer.js";
import {
  WaterHeaterManagementServer as BaseWaterHeaterManagementServer
} from "../behaviors/water-heater-management/WaterHeaterManagementServer.js";
import {
  WaterHeaterModeServer as BaseWaterHeaterModeServer
} from "../behaviors/water-heater-mode/WaterHeaterModeServer.js";
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var WaterHeaterRequirements;
((WaterHeaterRequirements2) => {
  WaterHeaterRequirements2.ThermostatServer = BaseThermostatServer.with("Heating");
  WaterHeaterRequirements2.WaterHeaterManagementServer = BaseWaterHeaterManagementServer;
  WaterHeaterRequirements2.WaterHeaterModeServer = BaseWaterHeaterModeServer;
  WaterHeaterRequirements2.IdentifyServer = BaseIdentifyServer;
  WaterHeaterRequirements2.server = {
    mandatory: {
      Thermostat: WaterHeaterRequirements2.ThermostatServer,
      WaterHeaterManagement: WaterHeaterRequirements2.WaterHeaterManagementServer,
      WaterHeaterMode: WaterHeaterRequirements2.WaterHeaterModeServer
    },
    optional: { Identify: WaterHeaterRequirements2.IdentifyServer }
  };
})(WaterHeaterRequirements || (WaterHeaterRequirements = {}));
const WaterHeaterDeviceDefinition = MutableEndpoint({
  name: "WaterHeater",
  deviceType: 1295,
  deviceRevision: 1,
  requirements: WaterHeaterRequirements,
  behaviors: SupportedBehaviors(
    WaterHeaterRequirements.server.mandatory.WaterHeaterManagement,
    WaterHeaterRequirements.server.mandatory.WaterHeaterMode
  )
});
Object.freeze(WaterHeaterDeviceDefinition);
const WaterHeaterDevice = WaterHeaterDeviceDefinition;
export {
  WaterHeaterDevice,
  WaterHeaterDeviceDefinition,
  WaterHeaterRequirements
};
//# sourceMappingURL=water-heater.js.map
