/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import { BooleanStateServer as BaseBooleanStateServer } from "../behaviors/boolean-state/BooleanStateServer.js";
import {
  BooleanStateConfigurationServer as BaseBooleanStateConfigurationServer
} from "../behaviors/boolean-state-configuration/BooleanStateConfigurationServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var WaterFreezeDetectorRequirements;
((WaterFreezeDetectorRequirements2) => {
  WaterFreezeDetectorRequirements2.IdentifyServer = BaseIdentifyServer;
  WaterFreezeDetectorRequirements2.BooleanStateServer = BaseBooleanStateServer.alter({ events: { stateChange: { optional: false } } });
  WaterFreezeDetectorRequirements2.BooleanStateConfigurationServer = BaseBooleanStateConfigurationServer;
  WaterFreezeDetectorRequirements2.server = {
    mandatory: { Identify: WaterFreezeDetectorRequirements2.IdentifyServer, BooleanState: WaterFreezeDetectorRequirements2.BooleanStateServer },
    optional: { BooleanStateConfiguration: WaterFreezeDetectorRequirements2.BooleanStateConfigurationServer }
  };
})(WaterFreezeDetectorRequirements || (WaterFreezeDetectorRequirements = {}));
const WaterFreezeDetectorDeviceDefinition = MutableEndpoint({
  name: "WaterFreezeDetector",
  deviceType: 65,
  deviceRevision: 1,
  requirements: WaterFreezeDetectorRequirements,
  behaviors: SupportedBehaviors(
    WaterFreezeDetectorRequirements.server.mandatory.Identify,
    WaterFreezeDetectorRequirements.server.mandatory.BooleanState
  )
});
Object.freeze(WaterFreezeDetectorDeviceDefinition);
const WaterFreezeDetectorDevice = WaterFreezeDetectorDeviceDefinition;
export {
  WaterFreezeDetectorDevice,
  WaterFreezeDetectorDeviceDefinition,
  WaterFreezeDetectorRequirements
};
//# sourceMappingURL=water-freeze-detector.js.map
