"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 thread_network_diagnostics_exports = {};
__export(thread_network_diagnostics_exports, {
  ThreadNetworkDiagnostics: () => ThreadNetworkDiagnostics,
  ThreadNetworkDiagnosticsCluster: () => ThreadNetworkDiagnosticsCluster
});
module.exports = __toCommonJS(thread_network_diagnostics_exports);
var import_MutableCluster = require("../cluster/mutation/MutableCluster.js");
var import_Cluster = require("../cluster/Cluster.js");
var import_TlvNumber = require("../tlv/TlvNumber.js");
var import_TlvNoArguments = require("../tlv/TlvNoArguments.js");
var import_model = require("#model");
var import_BitmapSchema = require("../schema/BitmapSchema.js");
var import_TlvNullable = require("../tlv/TlvNullable.js");
var import_TlvString = require("../tlv/TlvString.js");
var import_TlvArray = require("../tlv/TlvArray.js");
var import_TlvObject = require("../tlv/TlvObject.js");
var import_TlvBoolean = require("../tlv/TlvBoolean.js");
var import_Priority = require("../globals/Priority.js");
var import_ClusterRegistry = require("../cluster/ClusterRegistry.js");
/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
var ThreadNetworkDiagnostics;
((ThreadNetworkDiagnostics2) => {
  let Feature;
  ((Feature2) => {
    Feature2["PacketCounts"] = "PacketCounts";
    Feature2["ErrorCounts"] = "ErrorCounts";
    Feature2["MleCounts"] = "MleCounts";
    Feature2["MacCounts"] = "MacCounts";
  })(Feature = ThreadNetworkDiagnostics2.Feature || (ThreadNetworkDiagnostics2.Feature = {}));
  let RoutingRole;
  ((RoutingRole2) => {
    RoutingRole2[RoutingRole2["Unspecified"] = 0] = "Unspecified";
    RoutingRole2[RoutingRole2["Unassigned"] = 1] = "Unassigned";
    RoutingRole2[RoutingRole2["SleepyEndDevice"] = 2] = "SleepyEndDevice";
    RoutingRole2[RoutingRole2["EndDevice"] = 3] = "EndDevice";
    RoutingRole2[RoutingRole2["Reed"] = 4] = "Reed";
    RoutingRole2[RoutingRole2["Router"] = 5] = "Router";
    RoutingRole2[RoutingRole2["Leader"] = 6] = "Leader";
  })(RoutingRole = ThreadNetworkDiagnostics2.RoutingRole || (ThreadNetworkDiagnostics2.RoutingRole = {}));
  ThreadNetworkDiagnostics2.TlvNeighborTable = (0, import_TlvObject.TlvObject)({
    /**
     * This field shall specify the IEEE 802.15.4 extended address for the neighboring Node. The uint64 value is
     * composed by taking the 8 octets of the extended address EUI-64 and treating them as a big-endian integer. For
     * example, octet string (in hexadecimal, from first octet to last) 00112233AABBCCDD would lead to a value of
     * 0x00112233AABBCCDD.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.4.1
     */
    extAddress: (0, import_TlvObject.TlvField)(0, import_TlvNumber.TlvUInt64),
    /**
     * This field shall specify the duration of time, in seconds, since a frame has been received from the
     * neighboring Node.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.4.2
     */
    age: (0, import_TlvObject.TlvField)(1, import_TlvNumber.TlvUInt32),
    /**
     * This field shall specify the RLOC16 of the neighboring Node. The uint16 value is composed by taking the two
     * RLOC16 and treating the octet string as if it was encoding a big-endian integer. For example, octet string
     * (in hexadecimal, from first octet to last) 44AA would lead to a value of 0x44AA.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.4.3
     */
    rloc16: (0, import_TlvObject.TlvField)(2, import_TlvNumber.TlvUInt16),
    /**
     * This field shall specify the number of link layer frames that have been received from the neighboring node.
     * This field shall be reset to 0 upon a reboot of the Node.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.4.4
     */
    linkFrameCounter: (0, import_TlvObject.TlvField)(3, import_TlvNumber.TlvUInt32),
    /**
     * This field shall specify the number of Mesh Link Establishment frames that have been received from the
     * neighboring node. This field shall be reset to 0 upon a reboot of the Node.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.4.5
     */
    mleFrameCounter: (0, import_TlvObject.TlvField)(4, import_TlvNumber.TlvUInt32),
    /**
     * This field shall specify the implementation specific mix of IEEE 802.15.4 PDU receive quality indicators,
     * scaled from 0 to 255.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.4.6
     */
    lqi: (0, import_TlvObject.TlvField)(5, import_TlvNumber.TlvUInt8),
    /**
     * This field SHOULD specify the average RSSI across all received frames from the neighboring Node since the
     * receiving Node’s last reboot. If there is no known received frames this field SHOULD have the value of null.
     * This field shall have the units of dBm, having the range -128 dBm to 0 dBm.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.4.7
     */
    averageRssi: (0, import_TlvObject.TlvField)(6, (0, import_TlvNullable.TlvNullable)(import_TlvNumber.TlvInt8.bound({ max: 0 }))),
    /**
     * This field shall specify the RSSI of the most recently received frame from the neighboring Node. If there is
     * no known last received frame the LastRssi field SHOULD have the value of null. This field shall have the
     * units of dBm, having the range -128 dBm to 0 dBm.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.4.8
     */
    lastRssi: (0, import_TlvObject.TlvField)(7, (0, import_TlvNullable.TlvNullable)(import_TlvNumber.TlvInt8.bound({ max: 0 }))),
    /**
     * This field shall specify the percentage of received frames from the neighboring Node that have resulted in
     * errors.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.4.9
     */
    frameErrorRate: (0, import_TlvObject.TlvField)(8, import_TlvNumber.TlvUInt8.bound({ max: 100 })),
    /**
     * This field shall specify the percentage of received messages from the neighboring Node that have resulted in
     * errors.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.4.10
     */
    messageErrorRate: (0, import_TlvObject.TlvField)(9, import_TlvNumber.TlvUInt8.bound({ max: 100 })),
    /**
     * This field shall specify if the neighboring Node is capable of receiving frames while the Node is in an idle
     * state.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.4.11
     */
    rxOnWhenIdle: (0, import_TlvObject.TlvField)(10, import_TlvBoolean.TlvBoolean),
    /**
     * This field shall specify if the neighboring Node is a full Thread device.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.4.12
     */
    fullThreadDevice: (0, import_TlvObject.TlvField)(11, import_TlvBoolean.TlvBoolean),
    /**
     * This field shall specify if the neighboring Node requires the full Network Data. If set to False, the
     * neighboring Node only requires the stable Network Data.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.4.13
     */
    fullNetworkData: (0, import_TlvObject.TlvField)(12, import_TlvBoolean.TlvBoolean),
    /**
     * This field shall specify if the neighboring Node is a direct child of the Node reporting the NeighborTable
     * attribute.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.4.14
     */
    isChild: (0, import_TlvObject.TlvField)(13, import_TlvBoolean.TlvBoolean)
  });
  ThreadNetworkDiagnostics2.TlvRouteTable = (0, import_TlvObject.TlvObject)({
    /**
     * This field shall specify the IEEE 802.15.4 extended address for the Node for which this route table entry
     * corresponds. The uint64 value is composed by taking the 8 octets of the extended address EUI- 64 and treating
     * them as a big-endian integer. For example, octet string (in hexadecimal, from first octet to last)
     * 00112233AABBCCDD would lead to a value of 0x00112233AABBCCDD.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.5.1
     */
    extAddress: (0, import_TlvObject.TlvField)(0, import_TlvNumber.TlvUInt64),
    /**
     * This field shall specify the RLOC16 for the Node for which this route table entry corresponds. The uint16
     * value is composed by taking the two RLOC16 and treating the octet string as if it was encoding a big-endian
     * integer. For example, octet string (in hexadecimal, from first octet to last) 44AA would lead to a value of
     * 0x44AA.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.5.2
     */
    rloc16: (0, import_TlvObject.TlvField)(1, import_TlvNumber.TlvUInt16),
    /**
     * This field shall specify the Router ID for the Node for which this route table entry corresponds.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.5.3
     */
    routerId: (0, import_TlvObject.TlvField)(2, import_TlvNumber.TlvUInt8),
    /**
     * This field shall specify the Router ID for the next hop in the route to the Node for which this route table
     * entry corresponds.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.5.4
     */
    nextHop: (0, import_TlvObject.TlvField)(3, import_TlvNumber.TlvUInt8),
    /**
     * This Field shall specify the cost of the route to the Node for which this route table entry corresponds.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.5.5
     */
    pathCost: (0, import_TlvObject.TlvField)(4, import_TlvNumber.TlvUInt8),
    /**
     * This field shall specify the implementation specific mix of IEEE 802.15.4 PDU receive quality indicators,
     * scaled from 0 to 255, from the perspective of the Node reporting the neighbor table.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.5.6
     */
    lqiIn: (0, import_TlvObject.TlvField)(5, import_TlvNumber.TlvUInt8),
    /**
     * This field shall specify the implementation specific mix of IEEE 802.15.4 PDU receive quality indicators,
     * scaled from 0 to 255, from the perspective of the Node specified within the NextHop field.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.5.7
     */
    lqiOut: (0, import_TlvObject.TlvField)(6, import_TlvNumber.TlvUInt8),
    /**
     * This field shall specify the duration of time, in seconds, since a frame has been received from the Node for
     * which this route table entry corresponds.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.5.8
     */
    age: (0, import_TlvObject.TlvField)(7, import_TlvNumber.TlvUInt8),
    /**
     * This field shall specify if the router ID as defined within the RouterId field has been allocated.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.5.9
     */
    allocated: (0, import_TlvObject.TlvField)(8, import_TlvBoolean.TlvBoolean),
    /**
     * This field shall specify if a link has been established to the Node for which this route table entry
     * corresponds.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.5.10
     */
    linkEstablished: (0, import_TlvObject.TlvField)(9, import_TlvBoolean.TlvBoolean)
  });
  ThreadNetworkDiagnostics2.TlvSecurityPolicy = (0, import_TlvObject.TlvObject)({
    /**
     * This field shall specify the interval of time, in hours, that Thread security keys are rotated. Null when
     * there is no dataset configured.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.6.1
     */
    rotationTime: (0, import_TlvObject.TlvField)(0, import_TlvNumber.TlvUInt16),
    /**
     * This field shall specify the flags as specified in Thread 1.3.0 section 8.10.1.15. Null when there is no
     * dataset configured.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.6.2
     */
    flags: (0, import_TlvObject.TlvField)(1, import_TlvNumber.TlvUInt16)
  });
  ThreadNetworkDiagnostics2.TlvOperationalDatasetComponents = (0, import_TlvObject.TlvObject)({
    /**
     * This field shall be True if the Node has an active timestamp present, else False.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.7.1
     */
    activeTimestampPresent: (0, import_TlvObject.TlvField)(0, import_TlvBoolean.TlvBoolean),
    /**
     * This field shall be True if the Node has a pending timestamp is present, else False.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.7.2
     */
    pendingTimestampPresent: (0, import_TlvObject.TlvField)(1, import_TlvBoolean.TlvBoolean),
    /**
     * This field shall be True if the Node has the Thread master key, else False.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.7.3
     */
    masterKeyPresent: (0, import_TlvObject.TlvField)(2, import_TlvBoolean.TlvBoolean),
    /**
     * This field shall be True if the Node has the Thread network’s name, else False.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.7.4
     */
    networkNamePresent: (0, import_TlvObject.TlvField)(3, import_TlvBoolean.TlvBoolean),
    /**
     * This field shall be True if the Node has an extended Pan ID, else False.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.7.5
     */
    extendedPanIdPresent: (0, import_TlvObject.TlvField)(4, import_TlvBoolean.TlvBoolean),
    /**
     * This field shall be True if the Node has the mesh local prefix, else False.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.7.6
     */
    meshLocalPrefixPresent: (0, import_TlvObject.TlvField)(5, import_TlvBoolean.TlvBoolean),
    /**
     * This field shall be True if the Node has the Thread network delay set, else False.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.7.7
     */
    delayPresent: (0, import_TlvObject.TlvField)(6, import_TlvBoolean.TlvBoolean),
    /**
     * This field shall be True if the Node has a Pan ID, else False.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.7.8
     */
    panIdPresent: (0, import_TlvObject.TlvField)(7, import_TlvBoolean.TlvBoolean),
    /**
     * This field shall be True if the Node has configured an operational channel for the Thread network, else
     * False.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.7.9
     */
    channelPresent: (0, import_TlvObject.TlvField)(8, import_TlvBoolean.TlvBoolean),
    /**
     * This field shall be True if the Node has been configured with the Thread network Pskc, else False.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.7.10
     */
    pskcPresent: (0, import_TlvObject.TlvField)(9, import_TlvBoolean.TlvBoolean),
    /**
     * This field shall be True if the Node has been configured with the Thread network security policies, else
     * False.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.7.11
     */
    securityPolicyPresent: (0, import_TlvObject.TlvField)(10, import_TlvBoolean.TlvBoolean),
    /**
     * This field shall be True if the Node has available a mask of available channels, else False.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.5.7.12
     */
    channelMaskPresent: (0, import_TlvObject.TlvField)(11, import_TlvBoolean.TlvBoolean)
  });
  let NetworkFault;
  ((NetworkFault2) => {
    NetworkFault2[NetworkFault2["Unspecified"] = 0] = "Unspecified";
    NetworkFault2[NetworkFault2["LinkDown"] = 1] = "LinkDown";
    NetworkFault2[NetworkFault2["HardwareFailure"] = 2] = "HardwareFailure";
    NetworkFault2[NetworkFault2["NetworkJammed"] = 3] = "NetworkJammed";
  })(NetworkFault = ThreadNetworkDiagnostics2.NetworkFault || (ThreadNetworkDiagnostics2.NetworkFault = {}));
  let ConnectionStatus;
  ((ConnectionStatus2) => {
    ConnectionStatus2[ConnectionStatus2["Connected"] = 0] = "Connected";
    ConnectionStatus2[ConnectionStatus2["NotConnected"] = 1] = "NotConnected";
  })(ConnectionStatus = ThreadNetworkDiagnostics2.ConnectionStatus || (ThreadNetworkDiagnostics2.ConnectionStatus = {}));
  ThreadNetworkDiagnostics2.TlvConnectionStatusEvent = (0, import_TlvObject.TlvObject)({ connectionStatus: (0, import_TlvObject.TlvField)(0, (0, import_TlvNumber.TlvEnum)()) });
  ThreadNetworkDiagnostics2.TlvNetworkFaultChangeEvent = (0, import_TlvObject.TlvObject)({
    /**
     * This field shall represent the set of faults currently detected, as per Section 11.14.5.1, “NetworkFaultEnum
     * Type”.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.8.1.1
     */
    current: (0, import_TlvObject.TlvField)(0, (0, import_TlvArray.TlvArray)((0, import_TlvNumber.TlvEnum)(), { maxLength: 4 })),
    /**
     * This field shall represent the set of faults detected prior to this change event, as per Section 11.14.5.1,
     * “NetworkFaultEnum Type”.
     *
     * @see {@link MatterSpecification.v142.Core} § 11.14.8.1.2
     */
    previous: (0, import_TlvObject.TlvField)(1, (0, import_TlvArray.TlvArray)((0, import_TlvNumber.TlvEnum)(), { maxLength: 4 }))
  });
  ThreadNetworkDiagnostics2.ErrorCountsComponent = import_MutableCluster.MutableCluster.Component({
    attributes: {
      /**
       * Indicates the number of packets dropped either at ingress or egress, due to lack of buffer memory to
       * retain all packets on the ethernet network interface. The OverrunCount attribute shall be reset to 0 upon
       * a reboot of the Node.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.7
       */
      overrunCount: (0, import_Cluster.Attribute)(6, import_TlvNumber.TlvUInt64, { omitChanges: true, default: 0 })
    },
    commands: {
      /**
       * This command is used to reset the count attributes.
       *
       * Reception of this command shall reset the following attributes to 0:
       *
       *   • OverrunCount
       *
       * Upon completion, this command shall send a status code of SUCCESS back to the initiator.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.7.1
       */
      resetCounts: (0, import_Cluster.Command)(0, import_TlvNoArguments.TlvNoArguments, 0, import_Cluster.TlvNoResponse, { invokeAcl: import_model.AccessLevel.Manage })
    }
  });
  ThreadNetworkDiagnostics2.MleCountsComponent = import_MutableCluster.MutableCluster.Component({
    attributes: {
      /**
       * Indicates the number of times the Node entered the OT_DEVICE_ROLE_DETACHED role as specified within the
       * Thread specification. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.15
       */
      detachedRoleCount: (0, import_Cluster.OptionalAttribute)(14, import_TlvNumber.TlvUInt16, { omitChanges: true, default: 0 }),
      /**
       * Indicates the number of times the Node entered the OT_DEVICE_ROLE_CHILD role as specified within the
       * Thread specification. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.16
       */
      childRoleCount: (0, import_Cluster.OptionalAttribute)(15, import_TlvNumber.TlvUInt16, { omitChanges: true, default: 0 }),
      /**
       * Indicates the number of times the Node entered the OT_DEVICE_ROLE_ROUTER role as specified within the
       * Thread specification. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.17
       */
      routerRoleCount: (0, import_Cluster.OptionalAttribute)(16, import_TlvNumber.TlvUInt16, { omitChanges: true, default: 0 }),
      /**
       * Indicates the number of times the Node entered the OT_DEVICE_ROLE_LEADER role as specified within the
       * Thread specification. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.18
       */
      leaderRoleCount: (0, import_Cluster.OptionalAttribute)(17, import_TlvNumber.TlvUInt16, { omitChanges: true, default: 0 }),
      /**
       * Indicates the number of attempts that have been made to attach to a Thread network while the Node was
       * detached from all Thread networks. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.19
       */
      attachAttemptCount: (0, import_Cluster.OptionalAttribute)(18, import_TlvNumber.TlvUInt16, { omitChanges: true, default: 0 }),
      /**
       * Indicates the number of times that the Thread network that the Node is connected to has changed its
       * Partition ID. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.20
       */
      partitionIdChangeCount: (0, import_Cluster.OptionalAttribute)(19, import_TlvNumber.TlvUInt16, { omitChanges: true, default: 0 }),
      /**
       * Indicates the number of times a Node has attempted to attach to a different Thread partition that it has
       * determined is better than the partition it is currently attached to. This value shall only be reset upon
       * a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.21
       */
      betterPartitionAttachAttemptCount: (0, import_Cluster.OptionalAttribute)(20, import_TlvNumber.TlvUInt16, { omitChanges: true, default: 0 }),
      /**
       * Indicates the number of times a Node has changed its parent. This value shall only be reset upon a Node
       * reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.22
       */
      parentChangeCount: (0, import_Cluster.OptionalAttribute)(21, import_TlvNumber.TlvUInt16, { omitChanges: true, default: 0 })
    }
  });
  ThreadNetworkDiagnostics2.MacCountsComponent = import_MutableCluster.MutableCluster.Component({
    attributes: {
      /**
       * Indicates the total number of unique MAC frame transmission requests. The attribute shall only be
       * incremented by 1 for each MAC transmission request regardless of the amount of CCA failures, CSMA-CA
       * attempts, or retransmissions. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.23
       */
      txTotalCount: (0, import_Cluster.OptionalAttribute)(22, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of unique unicast MAC frame transmission requests. The attribute shall only be
       * incremented by 1 for each unicast MAC transmission request regardless of the amount of CCA failures,
       * CSMA-CA attempts, or retransmissions. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.24
       */
      txUnicastCount: (0, import_Cluster.OptionalAttribute)(23, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of unique broadcast MAC frame transmission requests. The attribute shall only
       * be incremented by 1 for each broadcast MAC transmission request regardless of the amount of CCA failures,
       * CSMA-CA attempts, or retransmissions. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.25
       */
      txBroadcastCount: (0, import_Cluster.OptionalAttribute)(24, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of unique MAC frame transmission requests with requested acknowledgment. The
       * attribute shall only be incremented by 1 for each MAC transmission request with requested acknowledgment
       * regardless of the amount of CCA failures, CSMA-CA attempts, or retransmissions. This value shall only be
       * reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.26
       */
      txAckRequestedCount: (0, import_Cluster.OptionalAttribute)(25, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of unique MAC frame transmission requests that were acked. The attribute shall
       * only be incremented by 1 for each MAC transmission request that is acked regardless of the amount of CCA
       * failures, CSMA-CA attempts, or retransmissions. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.27
       */
      txAckedCount: (0, import_Cluster.OptionalAttribute)(26, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of unique MAC frame transmission requests without requested acknowledgment.
       * The attribute shall only be incremented by 1 for each MAC transmission request that is does not request
       * acknowledgement regardless of the amount of CCA failures, CSMA-CA attempts, or retransmissions.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.28
       */
      txNoAckRequestedCount: (0, import_Cluster.OptionalAttribute)(27, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of unique MAC Data frame transmission requests. The attribute shall only be
       * incremented by 1 for each MAC Data frame transmission request regardless of the amount of CCA failures,
       * CSMA-CA attempts, or retransmissions. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.29
       */
      txDataCount: (0, import_Cluster.OptionalAttribute)(28, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of unique MAC Data Poll frame transmission requests. The attribute shall only
       * be incremented by 1 for each MAC Data Poll frame transmission request regardless of the amount of CCA
       * failures, CSMA-CA attempts, or retransmissions. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.30
       */
      txDataPollCount: (0, import_Cluster.OptionalAttribute)(29, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of unique MAC Beacon frame transmission requests. The attribute shall only be
       * incremented by 1 for each MAC Beacon frame transmission request regardless of the amount of CCA failures,
       * CSMA-CA attempts, or retransmissions.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.31
       */
      txBeaconCount: (0, import_Cluster.OptionalAttribute)(30, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of unique MAC Beacon Request frame transmission requests. The attribute shall
       * only be incremented by 1 for each MAC Beacon Request frame transmission request regardless of the amount
       * of CCA failures, CSMA-CA attempts, or retransmissions. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.32
       */
      txBeaconRequestCount: (0, import_Cluster.OptionalAttribute)(31, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of unique MAC frame transmission requests that are not counted by any other
       * attribute. The attribute shall only be incremented by 1 for each MAC frame transmission request
       * regardless of the amount of CCA failures, CSMA-CA attempts, or retransmissions. This value shall only be
       * reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.33
       */
      txOtherCount: (0, import_Cluster.OptionalAttribute)(32, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of MAC retransmission attempts. The attribute shall only be incremented by 1
       * for each retransmission attempt that may be triggered by lack of acknowledgement, CSMA/CA failure, or
       * other type of transmission error. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.34
       */
      txRetryCount: (0, import_Cluster.OptionalAttribute)(33, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of unique MAC transmission packets that meet maximal retry limit for direct
       * packets. The attribute shall only be incremented by 1 for each unique MAC transmission packets that meets
       * the maximal retry limit for direct packets. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.35
       */
      txDirectMaxRetryExpiryCount: (0, import_Cluster.OptionalAttribute)(34, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of unique MAC transmission packets that meet maximal retry limit for indirect
       * packets. The attribute shall only be incremented by 1 for each unique MAC transmission packets that meets
       * the maximal retry limit for indirect packets. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.36
       */
      txIndirectMaxRetryExpiryCount: (0, import_Cluster.OptionalAttribute)(35, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of CCA failures. The TxErrCcaCount attribute shall only be incremented by 1
       * for each instance of a CCA failure. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.37
       */
      txErrCcaCount: (0, import_Cluster.OptionalAttribute)(36, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of unique MAC transmission request failures caused by an abort error. The
       * attribute shall only be incremented by 1 for each unique MAC transmission request failure caused by an
       * abort error.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.38
       */
      txErrAbortCount: (0, import_Cluster.OptionalAttribute)(37, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of unique MAC transmission request failures caused by an error as the result
       * of a busy channel (a CSMA/CA fail). The attribute shall only be incremented by 1 for each unique MAC
       * transmission request failure caused by a busy channel such as a CSMA/CA failure.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.39
       */
      txErrBusyChannelCount: (0, import_Cluster.OptionalAttribute)(38, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of received unique MAC frames. This value shall only be reset upon a Node
       * reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.40
       */
      rxTotalCount: (0, import_Cluster.OptionalAttribute)(39, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of received unique unicast MAC frames. This value shall only be reset upon a
       * Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.41
       */
      rxUnicastCount: (0, import_Cluster.OptionalAttribute)(40, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of received unique broadcast MAC frames. This value shall only be reset upon a
       * Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.42
       */
      rxBroadcastCount: (0, import_Cluster.OptionalAttribute)(41, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of received unique MAC Data frames. This value shall only be reset upon a Node
       * reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.43
       */
      rxDataCount: (0, import_Cluster.OptionalAttribute)(42, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of received unique MAC Data Poll frames. This value shall only be reset upon a
       * Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.44
       */
      rxDataPollCount: (0, import_Cluster.OptionalAttribute)(43, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of received unique MAC Beacon frames. This value shall only be reset upon a
       * Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.45
       */
      rxBeaconCount: (0, import_Cluster.OptionalAttribute)(44, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of received unique MAC Beacon Request frames. This value shall only be reset
       * upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.46
       */
      rxBeaconRequestCount: (0, import_Cluster.OptionalAttribute)(45, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of received unique MAC frame requests that are not counted by any other
       * attribute. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.47
       */
      rxOtherCount: (0, import_Cluster.OptionalAttribute)(46, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of received unique MAC frame requests that have been dropped as a result of
       * MAC filtering. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.48
       */
      rxAddressFilteredCount: (0, import_Cluster.OptionalAttribute)(47, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of received unique MAC frame requests that have been dropped as a result of a
       * destination address check. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.49
       */
      rxDestAddrFilteredCount: (0, import_Cluster.OptionalAttribute)(48, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of received MAC frame requests that have been dropped as a result of being a
       * duplicate of a previously received MAC frame request. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.50
       */
      rxDuplicatedCount: (0, import_Cluster.OptionalAttribute)(49, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of received unique MAC frame requests that have been dropped as a result of
       * missing or malformed frame contents. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.51
       */
      rxErrNoFrameCount: (0, import_Cluster.OptionalAttribute)(50, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of received unique MAC frame requests that have been dropped as a result of
       * originating from an unknown neighbor device. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.52
       */
      rxErrUnknownNeighborCount: (0, import_Cluster.OptionalAttribute)(51, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of received unique MAC frame requests that have been dropped as a result of
       * containing an invalid source address. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.53
       */
      rxErrInvalidSrcAddrCount: (0, import_Cluster.OptionalAttribute)(52, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of received unique MAC frame requests that have been dropped as a result of an
       * error with the security of the received frame. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.54
       */
      rxErrSecCount: (0, import_Cluster.OptionalAttribute)(53, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of received unique MAC frame requests that have been dropped as a result of an
       * error with the FCS of the received frame. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.55
       */
      rxErrFcsCount: (0, import_Cluster.OptionalAttribute)(54, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 }),
      /**
       * Indicates the total number of received unique MAC frame requests that have been dropped as a result of an
       * error that is not counted by any other attribute. This value shall only be reset upon a Node reboot.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.56
       */
      rxErrOtherCount: (0, import_Cluster.OptionalAttribute)(55, import_TlvNumber.TlvUInt32, { omitChanges: true, default: 0 })
    }
  });
  ThreadNetworkDiagnostics2.Base = import_MutableCluster.MutableCluster.Component({
    id: 53,
    name: "ThreadNetworkDiagnostics",
    revision: 3,
    features: {
      /**
       * Server supports the counts for the number of received and transmitted packets on the Thread interface.
       */
      packetCounts: (0, import_BitmapSchema.BitFlag)(0),
      /**
       * Server supports the counts for the number of errors that have occurred during the reception and
       * transmission of packets on the Thread interface.
       */
      errorCounts: (0, import_BitmapSchema.BitFlag)(1),
      /**
       * Server supports the counts for various MLE layer happenings.
       */
      mleCounts: (0, import_BitmapSchema.BitFlag)(2),
      /**
       * Server supports the counts for various MAC layer happenings.
       */
      macCounts: (0, import_BitmapSchema.BitFlag)(3)
    },
    attributes: {
      /**
       * Indicates the 802.15.4 channel number configured on the Node’s Thread interface (that is, the Active
       * Operational Dataset’s current Channel value). A value of null shall indicate that the Thread interface is
       * not currently configured or operational.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.1
       */
      channel: (0, import_Cluster.Attribute)(0, (0, import_TlvNullable.TlvNullable)(import_TlvNumber.TlvUInt16)),
      /**
       * Indicates the role that this Node has within the routing of messages through the Thread network, as
       * defined by RoutingRoleEnum. The potential roles are defined in the following table. A value of null shall
       * indicate that the Thread interface is not currently configured or operational.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.2
       */
      routingRole: (0, import_Cluster.Attribute)(1, (0, import_TlvNullable.TlvNullable)((0, import_TlvNumber.TlvEnum)())),
      /**
       * Indicates a human-readable (displayable) name for the Thread network that the Node has been configured to
       * join to. A value of null shall indicate that the Thread interface is not currently configured or
       * operational.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.3
       */
      networkName: (0, import_Cluster.Attribute)(2, (0, import_TlvNullable.TlvNullable)(import_TlvString.TlvString.bound({ maxLength: 16 }))),
      /**
       * Indicates the 16-bit identifier of the Node on the Thread network. A value of null shall indicate that
       * the Thread interface is not currently configured or operational.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.4
       */
      panId: (0, import_Cluster.Attribute)(3, (0, import_TlvNullable.TlvNullable)(import_TlvNumber.TlvUInt16)),
      /**
       * Indicates the unique 64-bit identifier of the Node on the Thread network. A value of null shall indicate
       * that the Thread interface is not currently configured or operational.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.5
       */
      extendedPanId: (0, import_Cluster.Attribute)(4, (0, import_TlvNullable.TlvNullable)(import_TlvNumber.TlvUInt64)),
      /**
       * Indicates the mesh-local IPv6 prefix for the Thread network that the Node has been configured to join to.
       * A value of null shall indicate that the Thread interface is not currently configured or operational.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.6
       */
      meshLocalPrefix: (0, import_Cluster.Attribute)(5, (0, import_TlvNullable.TlvNullable)(import_TlvString.TlvByteString)),
      /**
       * Indicates the current list of Nodes that comprise the neighbor table on the Node.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.8
       */
      neighborTable: (0, import_Cluster.Attribute)(7, (0, import_TlvArray.TlvArray)(ThreadNetworkDiagnostics2.TlvNeighborTable), { default: [] }),
      /**
       * Indicates the current list of router capable Nodes for which routes have been established.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.9
       */
      routeTable: (0, import_Cluster.Attribute)(8, (0, import_TlvArray.TlvArray)(ThreadNetworkDiagnostics2.TlvRouteTable), { default: [] }),
      /**
       * Indicates the Thread Leader Partition Id for the Thread network to which the Node is joined. Null if not
       * attached to a Thread network.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.10
       */
      partitionId: (0, import_Cluster.Attribute)(9, (0, import_TlvNullable.TlvNullable)(import_TlvNumber.TlvUInt32)),
      /**
       * Indicates the Thread Leader Weight used when operating in the Leader role. Null if not attached to a
       * Thread network.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.11
       */
      weighting: (0, import_Cluster.Attribute)(10, (0, import_TlvNullable.TlvNullable)(import_TlvNumber.TlvUInt16.bound({ max: 255 }))),
      /**
       * Indicates the full Network Data Version the Node currently uses. Null if not attached to a Thread
       * network.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.12
       */
      dataVersion: (0, import_Cluster.Attribute)(11, (0, import_TlvNullable.TlvNullable)(import_TlvNumber.TlvUInt16.bound({ max: 255 }))),
      /**
       * Indicates the Network Data Version for the stable subset of data the Node currently uses. Null if not
       * attached to a Thread network.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.13
       */
      stableDataVersion: (0, import_Cluster.Attribute)(12, (0, import_TlvNullable.TlvNullable)(import_TlvNumber.TlvUInt16.bound({ max: 255 }))),
      /**
       * Indicates the 8-bit LeaderRouterId the Node shall attempt to utilize upon becoming a router or leader on
       * the Thread network. Null if not attached to a Thread network.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.14
       */
      leaderRouterId: (0, import_Cluster.Attribute)(13, (0, import_TlvNullable.TlvNullable)(import_TlvNumber.TlvUInt8.bound({ max: 62 }))),
      /**
       * Null when there is no dataset configured.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.57
       */
      activeTimestamp: (0, import_Cluster.OptionalAttribute)(56, (0, import_TlvNullable.TlvNullable)(import_TlvNumber.TlvUInt64), { default: 0 }),
      /**
       * Null when there is no dataset configured.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.58
       */
      pendingTimestamp: (0, import_Cluster.OptionalAttribute)(57, (0, import_TlvNullable.TlvNullable)(import_TlvNumber.TlvUInt64), { default: 0 }),
      /**
       * Null when there is no dataset configured.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.59
       */
      delay: (0, import_Cluster.OptionalAttribute)(58, (0, import_TlvNullable.TlvNullable)(import_TlvNumber.TlvUInt32), { default: 0 }),
      /**
       * Indicates the current security policies for the Thread partition to which a Node is connected. Null when
       * there is no dataset configured.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.60
       */
      securityPolicy: (0, import_Cluster.Attribute)(59, (0, import_TlvNullable.TlvNullable)(ThreadNetworkDiagnostics2.TlvSecurityPolicy)),
      /**
       * Indicates the channels within channel page 0, in the 2.4GHz ISM band. The channels are represented in
       * most significant bit order, with bit value 1 meaning selected, bit value 0 meaning unselected. For
       * example, the most significant bit of the left-most byte indicates channel
       *
       * 0. If channel 0 and channel 10 are selected, the mask would be: 80 20 00 00. Null when there is no
       * dataset configured.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.61
       */
      channelPage0Mask: (0, import_Cluster.Attribute)(60, (0, import_TlvNullable.TlvNullable)(import_TlvString.TlvByteString.bound({ length: 4 }))),
      /**
       * Indicates a collection of flags to indicate the presence of various operationally acquired values.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.62
       */
      operationalDatasetComponents: (0, import_Cluster.Attribute)(61, (0, import_TlvNullable.TlvNullable)(ThreadNetworkDiagnostics2.TlvOperationalDatasetComponents)),
      /**
       * @see {@link MatterSpecification.v142.Core} § 11.14.6
       */
      activeNetworkFaultsList: (0, import_Cluster.Attribute)(
        62,
        (0, import_TlvArray.TlvArray)((0, import_TlvNumber.TlvEnum)(), { maxLength: 4 }),
        { default: [] }
      ),
      /**
       * Indicates the IEEE 802.15.4 extended address for the Node. A value of null shall indicate that the
       * extended address is not yet known. The uint64 value is composed by taking the 8 octets of the extended
       * address EUI-64 and treating them as a big-endian integer. For example, octet string (in hexadecimal, from
       * first octet to last) 00112233AABBCCDD would lead to a value of 0x00112233AABBCCDD.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.64
       */
      extAddress: (0, import_Cluster.Attribute)(63, (0, import_TlvNullable.TlvNullable)(import_TlvNumber.TlvUInt64)),
      /**
       * Indicates the RLOC16 of the Node. A value of null shall indicate that the Thread interface is not
       * currently configured or operational. The uint16 value is composed by taking the two RLOC16 and treating
       * the octet string as if it was encoding a big-endian integer. For example, octet string (in hexadecimal,
       * from first octet to last) 44AA would lead to a value of 0x44AA.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.6.65
       */
      rloc16: (0, import_Cluster.Attribute)(64, (0, import_TlvNullable.TlvNullable)(import_TlvNumber.TlvUInt16))
    },
    events: {
      /**
       * The ConnectionStatus Event shall indicate that a Node’s connection status to a Thread network has
       * changed.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.8.2
       */
      connectionStatus: (0, import_Cluster.OptionalEvent)(0, import_Priority.Priority.Info, ThreadNetworkDiagnostics2.TlvConnectionStatusEvent),
      /**
       * The NetworkFaultChange Event shall indicate a change in the set of network faults currently detected by
       * the Node.
       *
       * @see {@link MatterSpecification.v142.Core} § 11.14.8.1
       */
      networkFaultChange: (0, import_Cluster.OptionalEvent)(1, import_Priority.Priority.Info, ThreadNetworkDiagnostics2.TlvNetworkFaultChangeEvent)
    },
    /**
     * This metadata controls which ThreadNetworkDiagnosticsCluster elements matter.js activates for specific
     * feature combinations.
     */
    extensions: import_MutableCluster.MutableCluster.Extensions(
      { flags: { errorCounts: true }, component: ThreadNetworkDiagnostics2.ErrorCountsComponent },
      { flags: { mleCounts: true }, component: ThreadNetworkDiagnostics2.MleCountsComponent },
      { flags: { macCounts: true }, component: ThreadNetworkDiagnostics2.MacCountsComponent }
    )
  });
  ThreadNetworkDiagnostics2.ClusterInstance = (0, import_MutableCluster.MutableCluster)(ThreadNetworkDiagnostics2.Base);
  ThreadNetworkDiagnostics2.Cluster = ThreadNetworkDiagnostics2.ClusterInstance;
  const ERRCNT = { errorCounts: true };
  const MLECNT = { mleCounts: true };
  const MACCNT = { macCounts: true };
  ThreadNetworkDiagnostics2.CompleteInstance = (0, import_MutableCluster.MutableCluster)({
    id: ThreadNetworkDiagnostics2.Cluster.id,
    name: ThreadNetworkDiagnostics2.Cluster.name,
    revision: ThreadNetworkDiagnostics2.Cluster.revision,
    features: ThreadNetworkDiagnostics2.Cluster.features,
    attributes: {
      ...ThreadNetworkDiagnostics2.Cluster.attributes,
      overrunCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.ErrorCountsComponent.attributes.overrunCount,
        { mandatoryIf: [ERRCNT] }
      ),
      detachedRoleCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MleCountsComponent.attributes.detachedRoleCount,
        { optionalIf: [MLECNT] }
      ),
      childRoleCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MleCountsComponent.attributes.childRoleCount,
        { optionalIf: [MLECNT] }
      ),
      routerRoleCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MleCountsComponent.attributes.routerRoleCount,
        { optionalIf: [MLECNT] }
      ),
      leaderRoleCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MleCountsComponent.attributes.leaderRoleCount,
        { optionalIf: [MLECNT] }
      ),
      attachAttemptCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MleCountsComponent.attributes.attachAttemptCount,
        { optionalIf: [MLECNT] }
      ),
      partitionIdChangeCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MleCountsComponent.attributes.partitionIdChangeCount,
        { optionalIf: [MLECNT] }
      ),
      betterPartitionAttachAttemptCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MleCountsComponent.attributes.betterPartitionAttachAttemptCount,
        { optionalIf: [MLECNT] }
      ),
      parentChangeCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MleCountsComponent.attributes.parentChangeCount,
        { optionalIf: [MLECNT] }
      ),
      txTotalCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.txTotalCount,
        { optionalIf: [MACCNT] }
      ),
      txUnicastCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.txUnicastCount,
        { optionalIf: [MACCNT] }
      ),
      txBroadcastCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.txBroadcastCount,
        { optionalIf: [MACCNT] }
      ),
      txAckRequestedCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.txAckRequestedCount,
        { optionalIf: [MACCNT] }
      ),
      txAckedCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.txAckedCount,
        { optionalIf: [MACCNT] }
      ),
      txNoAckRequestedCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.txNoAckRequestedCount,
        { optionalIf: [MACCNT] }
      ),
      txDataCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.txDataCount,
        { optionalIf: [MACCNT] }
      ),
      txDataPollCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.txDataPollCount,
        { optionalIf: [MACCNT] }
      ),
      txBeaconCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.txBeaconCount,
        { optionalIf: [MACCNT] }
      ),
      txBeaconRequestCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.txBeaconRequestCount,
        { optionalIf: [MACCNT] }
      ),
      txOtherCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.txOtherCount,
        { optionalIf: [MACCNT] }
      ),
      txRetryCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.txRetryCount,
        { optionalIf: [MACCNT] }
      ),
      txDirectMaxRetryExpiryCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.txDirectMaxRetryExpiryCount,
        { optionalIf: [MACCNT] }
      ),
      txIndirectMaxRetryExpiryCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.txIndirectMaxRetryExpiryCount,
        { optionalIf: [MACCNT] }
      ),
      txErrCcaCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.txErrCcaCount,
        { optionalIf: [MACCNT] }
      ),
      txErrAbortCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.txErrAbortCount,
        { optionalIf: [MACCNT] }
      ),
      txErrBusyChannelCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.txErrBusyChannelCount,
        { optionalIf: [MACCNT] }
      ),
      rxTotalCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.rxTotalCount,
        { optionalIf: [MACCNT] }
      ),
      rxUnicastCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.rxUnicastCount,
        { optionalIf: [MACCNT] }
      ),
      rxBroadcastCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.rxBroadcastCount,
        { optionalIf: [MACCNT] }
      ),
      rxDataCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.rxDataCount,
        { optionalIf: [MACCNT] }
      ),
      rxDataPollCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.rxDataPollCount,
        { optionalIf: [MACCNT] }
      ),
      rxBeaconCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.rxBeaconCount,
        { optionalIf: [MACCNT] }
      ),
      rxBeaconRequestCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.rxBeaconRequestCount,
        { optionalIf: [MACCNT] }
      ),
      rxOtherCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.rxOtherCount,
        { optionalIf: [MACCNT] }
      ),
      rxAddressFilteredCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.rxAddressFilteredCount,
        { optionalIf: [MACCNT] }
      ),
      rxDestAddrFilteredCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.rxDestAddrFilteredCount,
        { optionalIf: [MACCNT] }
      ),
      rxDuplicatedCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.rxDuplicatedCount,
        { optionalIf: [MACCNT] }
      ),
      rxErrNoFrameCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.rxErrNoFrameCount,
        { optionalIf: [MACCNT] }
      ),
      rxErrUnknownNeighborCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.rxErrUnknownNeighborCount,
        { optionalIf: [MACCNT] }
      ),
      rxErrInvalidSrcAddrCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.rxErrInvalidSrcAddrCount,
        { optionalIf: [MACCNT] }
      ),
      rxErrSecCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.rxErrSecCount,
        { optionalIf: [MACCNT] }
      ),
      rxErrFcsCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.rxErrFcsCount,
        { optionalIf: [MACCNT] }
      ),
      rxErrOtherCount: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.MacCountsComponent.attributes.rxErrOtherCount,
        { optionalIf: [MACCNT] }
      )
    },
    commands: {
      resetCounts: import_MutableCluster.MutableCluster.AsConditional(
        ThreadNetworkDiagnostics2.ErrorCountsComponent.commands.resetCounts,
        { mandatoryIf: [ERRCNT] }
      )
    },
    events: ThreadNetworkDiagnostics2.Cluster.events
  });
  ThreadNetworkDiagnostics2.Complete = ThreadNetworkDiagnostics2.CompleteInstance;
})(ThreadNetworkDiagnostics || (ThreadNetworkDiagnostics = {}));
const ThreadNetworkDiagnosticsCluster = ThreadNetworkDiagnostics.Cluster;
import_ClusterRegistry.ClusterRegistry.register(ThreadNetworkDiagnostics.Complete);
//# sourceMappingURL=thread-network-diagnostics.js.map
