"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 RvcOperationalState_exports = {};
__export(RvcOperationalState_exports, {
  RvcOperationalState: () => RvcOperationalState
});
module.exports = __toCommonJS(RvcOperationalState_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 RvcOperationalState = (0, import_elements.ClusterElement)(
  {
    name: "RvcOperationalState",
    id: 97,
    type: "OperationalState",
    classification: "application",
    pics: "RVCOPSTATE",
    details: "This cluster provides an interface for monitoring the operational state of a Robotic Vacuum Cleaner.",
    xref: { document: "cluster", section: "7.4" }
  },
  (0, import_elements.AttributeElement)({ name: "ClusterRevision", id: 65533, type: "ClusterRevision", default: 2 }),
  (0, import_elements.CommandElement)({ name: "Pause", id: 0, xref: { document: "cluster", section: "7.4.5" } }),
  (0, import_elements.CommandElement)({ name: "Stop", id: 1, conformance: "D", xref: { document: "cluster", section: "7.4.5" } }),
  (0, import_elements.CommandElement)({ name: "Start", id: 2, conformance: "D", xref: { document: "cluster", section: "7.4.5" } }),
  (0, import_elements.CommandElement)({ name: "Resume", id: 3, xref: { document: "cluster", section: "7.4.5" } }),
  (0, import_elements.CommandElement)({ name: "OperationalCommandResponse", id: 4, xref: { document: "cluster", section: "7.4.5" } }),
  (0, import_elements.CommandElement)({
    name: "GoHome",
    id: 128,
    access: "O",
    conformance: "P, O",
    direction: "request",
    response: "OperationalCommandResponse",
    details: "On receipt of this command, the device shall start seeking the charging dock, if possible in the current state of the device.\nIf this command is received when already in the SeekingCharger state the device shall respond with an OperationalCommandResponse command with an ErrorStateID of NoError but the command shall have no other effect.\nA device that receives this command in any state which does not allow seeking the charger, such as Charging or Docked, shall respond with an OperationalCommandResponse command with an ErrorStateID of CommandInvalidInState and shall have no other effect.\nOtherwise, on success:\n  \u2022 The OperationalState attribute shall be set to SeekingCharger.\n  \u2022 The device shall respond with an OperationalCommandResponse command with an ErrorStateID of     NoError.",
    xref: { document: "cluster", section: "7.4.5.1" }
  }),
  (0, import_elements.DatatypeElement)(
    {
      name: "OperationalStateEnum",
      type: "enum8",
      details: "The values defined herein are applicable to this derived cluster of Operational State only and are additional to the set of values defined in Operational State itself.\nRVC Pause Compatibility defines the compatibility of the states this cluster defines with the Pause command.\n### Table 39. RVC Pause Compatibility\nRVC Resume Compatibility defines the compatibility of the states this cluster defines with the Resume command.\n### Table 40. RVC Resume Compatibility\nWhile in the Charging or Docked states, the device shall NOT attempt to resume unless it transitioned to those states while operating and can resume, such as, for example, if it is recharging while in a cleaning cycle. Else, if the operational state is Charging or Docked but there\u2019s no operation to resume or the operation can\u2019t be resumed, the device shall respond with an OperationalCommandResponse command with an ErrorStateID of CommandInvalidInState but take no further action.",
      xref: { document: "cluster", section: "7.4.4.1" }
    },
    (0, import_elements.FieldElement)({
      name: "SeekingCharger",
      id: 64,
      conformance: "M",
      description: "The device is en route to the charging dock"
    }),
    (0, import_elements.FieldElement)({ name: "Charging", id: 65, conformance: "M", description: "The device is charging" }),
    (0, import_elements.FieldElement)({ name: "Docked", id: 66, conformance: "M", description: "The device is on the dock, not charging" })
  ),
  (0, import_elements.DatatypeElement)(
    {
      name: "ErrorStateEnum",
      type: "enum8",
      details: "The values defined herein are applicable to this derived cluster of Operational State only and are additional to the set of values defined in Operational State itself.",
      xref: { document: "cluster", section: "7.4.4.2" }
    },
    (0, import_elements.FieldElement)({
      name: "FailedToFindChargingDock",
      id: 64,
      conformance: "M",
      description: "The device has failed to find or reach the charging dock"
    }),
    (0, import_elements.FieldElement)({
      name: "Stuck",
      id: 65,
      conformance: "M",
      description: "The device is stuck and requires manual intervention"
    }),
    (0, import_elements.FieldElement)({
      name: "DustBinMissing",
      id: 66,
      conformance: "M",
      description: "The device has detected that its dust bin is missing"
    }),
    (0, import_elements.FieldElement)({
      name: "DustBinFull",
      id: 67,
      conformance: "M",
      description: "The device has detected that its dust bin is full"
    }),
    (0, import_elements.FieldElement)({
      name: "WaterTankEmpty",
      id: 68,
      conformance: "M",
      description: "The device has detected that its water tank is empty"
    }),
    (0, import_elements.FieldElement)({
      name: "WaterTankMissing",
      id: 69,
      conformance: "M",
      description: "The device has detected that its water tank is missing"
    }),
    (0, import_elements.FieldElement)({
      name: "WaterTankLidOpen",
      id: 70,
      conformance: "M",
      description: "The device has detected that its water tank lid is open"
    }),
    (0, import_elements.FieldElement)({
      name: "MopCleaningPadMissing",
      id: 71,
      conformance: "M",
      description: "The device has detected that its cleaning pad is missing"
    })
  )
);
import_MatterDefinition.MatterDefinition.children.push(RvcOperationalState);
//# sourceMappingURL=RvcOperationalState.js.map
