/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
import { OptionalFixedAttribute } from "../cluster/Cluster.js";
import { TlvString, TlvByteString } from "../tlv/TlvString.js";
import { ClusterRegistry } from "../cluster/ClusterRegistry.js";
var WakeOnLan;
((WakeOnLan2) => {
  WakeOnLan2.ClusterInstance = 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: OptionalFixedAttribute(0, 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: OptionalFixedAttribute(1, TlvByteString.bound({ length: 16 }))
    }
  });
  WakeOnLan2.Cluster = WakeOnLan2.ClusterInstance;
  WakeOnLan2.Complete = WakeOnLan2.Cluster;
})(WakeOnLan || (WakeOnLan = {}));
const WakeOnLanCluster = WakeOnLan.Cluster;
ClusterRegistry.register(WakeOnLan.Complete);
export {
  WakeOnLan,
  WakeOnLanCluster
};
//# sourceMappingURL=wake-on-lan.js.map
