/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import {
  OperationalStateServer as BaseOperationalStateServer
} from "../behaviors/operational-state/OperationalStateServer.js";
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import {
  LaundryWasherModeServer as BaseLaundryWasherModeServer
} from "../behaviors/laundry-washer-mode/LaundryWasherModeServer.js";
import { OnOffServer as BaseOnOffServer } from "../behaviors/on-off/OnOffServer.js";
import {
  LaundryDryerControlsServer as BaseLaundryDryerControlsServer
} from "../behaviors/laundry-dryer-controls/LaundryDryerControlsServer.js";
import {
  TemperatureControlServer as BaseTemperatureControlServer
} from "../behaviors/temperature-control/TemperatureControlServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var LaundryDryerRequirements;
((LaundryDryerRequirements2) => {
  LaundryDryerRequirements2.OperationalStateServer = BaseOperationalStateServer.alter({ events: { operationCompletion: { optional: false } } });
  LaundryDryerRequirements2.IdentifyServer = BaseIdentifyServer;
  LaundryDryerRequirements2.LaundryWasherModeServer = BaseLaundryWasherModeServer;
  LaundryDryerRequirements2.OnOffServer = BaseOnOffServer.with("DeadFrontBehavior");
  LaundryDryerRequirements2.LaundryDryerControlsServer = BaseLaundryDryerControlsServer;
  LaundryDryerRequirements2.TemperatureControlServer = BaseTemperatureControlServer;
  LaundryDryerRequirements2.server = {
    mandatory: { OperationalState: LaundryDryerRequirements2.OperationalStateServer },
    optional: {
      Identify: LaundryDryerRequirements2.IdentifyServer,
      LaundryWasherMode: LaundryDryerRequirements2.LaundryWasherModeServer,
      OnOff: LaundryDryerRequirements2.OnOffServer,
      LaundryDryerControls: LaundryDryerRequirements2.LaundryDryerControlsServer,
      TemperatureControl: LaundryDryerRequirements2.TemperatureControlServer
    }
  };
})(LaundryDryerRequirements || (LaundryDryerRequirements = {}));
const LaundryDryerDeviceDefinition = MutableEndpoint({
  name: "LaundryDryer",
  deviceType: 124,
  deviceRevision: 2,
  requirements: LaundryDryerRequirements,
  behaviors: SupportedBehaviors(LaundryDryerRequirements.server.mandatory.OperationalState)
});
Object.freeze(LaundryDryerDeviceDefinition);
const LaundryDryerDevice = LaundryDryerDeviceDefinition;
export {
  LaundryDryerDevice,
  LaundryDryerDeviceDefinition,
  LaundryDryerRequirements
};
//# sourceMappingURL=laundry-dryer.js.map
