/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { MutableCluster } from "../cluster/mutation/MutableCluster.js";
import { WritableAttribute } from "../cluster/Cluster.js";
import { TlvArray } from "../tlv/TlvArray.js";
import { Label } from "./label.js";
import { AccessLevel } from "#model";
import { ClusterRegistry } from "../cluster/ClusterRegistry.js";
var UserLabel;
((UserLabel2) => {
  UserLabel2.ClusterInstance = MutableCluster({
    id: 65,
    name: "UserLabel",
    revision: 1,
    attributes: {
      /**
       * An implementation shall support at least 4 list entries per node for all User Label cluster instances on
       * the node.
       *
       * @see {@link MatterSpecification.v142.Core} § 9.9.4.1
       */
      labelList: WritableAttribute(
        0,
        TlvArray(Label.TlvLabelStruct, { minLength: 0 }),
        { persistent: true, default: [], writeAcl: AccessLevel.Manage }
      )
    }
  });
  UserLabel2.Cluster = UserLabel2.ClusterInstance;
  UserLabel2.Complete = UserLabel2.Cluster;
})(UserLabel || (UserLabel = {}));
const UserLabelCluster = UserLabel.Cluster;
ClusterRegistry.register(UserLabel.Complete);
export {
  UserLabel,
  UserLabelCluster
};
//# sourceMappingURL=user-label.js.map
