"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 wake_on_lan_exports = {};
__export(wake_on_lan_exports, {
  WakeOnLan: () => WakeOnLan,
  WakeOnLanCluster: () => WakeOnLanCluster
});
module.exports = __toCommonJS(wake_on_lan_exports);
var import_MutableCluster = require("../cluster/mutation/MutableCluster.js");
var import_Cluster = require("../cluster/Cluster.js");
var import_TlvString = require("../tlv/TlvString.js");
var import_ClusterRegistry = require("../cluster/ClusterRegistry.js");
/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
var WakeOnLan;
((WakeOnLan2) => {
  WakeOnLan2.ClusterInstance = (0, import_MutableCluster.MutableCluster)({
    id: 1283,
    name: "WakeOnLan",
    revision: 1,
    attributes: {
      /**
       * Indicates the current MAC address of the device. Only 48-bit MAC Addresses shall be used for this
       * attribute as required by the Wake on LAN protocol.
       *
       * Format of this attribute shall be an upper-case hex-encoded string representing the hex address, like
       * 12345678ABCD.
       *
       * @see {@link MatterSpecification.v142.Cluster} § 1.12.4.1
       */
      macAddress: (0, import_Cluster.OptionalFixedAttribute)(0, import_TlvString.TlvString.bound({ maxLength: 12 })),
      /**
       * Indicates the current link-local address of the device. Only 128-bit IPv6 link-local addresses shall be
       * used for this attribute.
       *
       * > [!NOTE]
       *
       * > Some companies may consider MAC Address to be protected data subject to PII handling considerations and
       *   will therefore choose not to include it or read it. The MAC Address can often be determined using ARP
       *   in IPv4 or NDP in IPv6.
       *
       * @see {@link MatterSpecification.v142.Cluster} § 1.12.4.2
       */
      linkLocalAddress: (0, import_Cluster.OptionalFixedAttribute)(1, import_TlvString.TlvByteString)
    }
  });
  WakeOnLan2.Cluster = WakeOnLan2.ClusterInstance;
  WakeOnLan2.Complete = WakeOnLan2.Cluster;
})(WakeOnLan || (WakeOnLan = {}));
const WakeOnLanCluster = WakeOnLan.Cluster;
import_ClusterRegistry.ClusterRegistry.register(WakeOnLan.Complete);
//# sourceMappingURL=wake-on-lan.js.map
