"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var LaundryWasherMode_exports = {};
__export(LaundryWasherMode_exports, {
  LaundryWasherMode: () => LaundryWasherMode
});
module.exports = __toCommonJS(LaundryWasherMode_exports);
var import_MatterDefinition = require("../MatterDefinition.js");
var import_elements = require("../../elements/index.js");
/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
const LaundryWasherMode = (0, import_elements.ClusterElement)(
  {
    name: "LaundryWasherMode",
    id: 81,
    type: "ModeBase",
    classification: "application",
    pics: "LWM",
    details: "This cluster is derived from the Mode Base cluster, defining additional mode tags and namespaced enumerated values for laundry washer as well as laundry dryer devices.",
    xref: { document: "cluster", section: "8.5" }
  },
  (0, import_elements.AttributeElement)({ name: "ClusterRevision", id: 65533, type: "ClusterRevision", default: 2 }),
  (0, import_elements.AttributeElement)({ name: "SupportedModes", id: 0, conformance: "M", xref: { document: "cluster", section: "8.5.5" } }),
  (0, import_elements.AttributeElement)({ name: "CurrentMode", id: 1, conformance: "M", xref: { document: "cluster", section: "8.5.5" } }),
  (0, import_elements.AttributeElement)({
    name: "StartUpMode",
    id: 2,
    conformance: "P",
    details: "If this attribute is supported, the device SHOULD initially set this to one of the supported modes that has the Normal tag associated with it. See the Mode Base cluster specification for full details about the StartUpMode attribute.",
    xref: { document: "cluster", section: "8.5.5.1" }
  }),
  (0, import_elements.AttributeElement)({ name: "OnMode", id: 3, conformance: "P", xref: { document: "cluster", section: "8.5.5" } }),
  (0, import_elements.DatatypeElement)({
    name: "ModeOptionStruct",
    type: "ModeOptionStruct",
    details: "The table below lists the changes relative to the Mode Base cluster for the fields of the ModeOptionStruct type. A blank field indicates no change.\nAt least one entry in the SupportedModes attribute shall include the Normal mode tag in the ModeTags field list.",
    xref: { document: "cluster", section: "8.5.4.1" }
  }),
  (0, import_elements.DatatypeElement)(
    { name: "ModeTag", type: "enum16" },
    (0, import_elements.FieldElement)({
      name: "Normal",
      id: 16384,
      details: "The normal regime of operation.",
      xref: { document: "cluster", section: "8.5.6.1.1" }
    }),
    (0, import_elements.FieldElement)({
      name: "Delicate",
      id: 16385,
      details: "Mode optimized for washing delicate garments.",
      xref: { document: "cluster", section: "8.5.6.1.2" }
    }),
    (0, import_elements.FieldElement)({
      name: "Heavy",
      id: 16386,
      details: "Mode optimized for heavy washing.",
      xref: { document: "cluster", section: "8.5.6.1.3" }
    }),
    (0, import_elements.FieldElement)({
      name: "Whites",
      id: 16387,
      details: "Mode optimized for stain removal on white fabrics.",
      xref: { document: "cluster", section: "8.5.6.1.4" }
    })
  )
);
import_MatterDefinition.MatterDefinition.children.push(LaundryWasherMode);
//# sourceMappingURL=LaundryWasherMode.js.map
