"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 UnitLocalization_exports = {};
__export(UnitLocalization_exports, {
  UnitLocalization: () => UnitLocalization
});
module.exports = __toCommonJS(UnitLocalization_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 UnitLocalization = (0, import_elements.ClusterElement)(
  {
    name: "UnitLocalization",
    id: 45,
    classification: "node",
    pics: "LUNIT",
    details: "Nodes should be expected to be deployed to any and all regions of the world. These global regions may have differing preferences for the units in which values are conveyed in communication to a\nuser. As such, Nodes that visually or audibly convey measurable values to the user need a mechanism by which they can be configured to use a user\u2019s preferred unit.\nThis cluster supports an interface to a Node. It provides attributes for determining and configuring the units that a Node shall utilize when conveying values in communication to a user.",
    xref: { document: "core", section: "11.5" }
  },
  (0, import_elements.AttributeElement)({ name: "ClusterRevision", id: 65533, type: "ClusterRevision", default: 1 }),
  (0, import_elements.AttributeElement)(
    { name: "FeatureMap", id: 65532, type: "FeatureMap", xref: { document: "core", section: "11.5.4" } },
    (0, import_elements.FieldElement)({
      name: "TEMP",
      constraint: "0",
      description: "TemperatureUnit",
      details: "The Node can be configured to use different units of temperature when conveying values to a user."
    })
  ),
  (0, import_elements.AttributeElement)({
    name: "TemperatureUnit",
    id: 0,
    type: "TempUnitEnum",
    access: "RW VM",
    conformance: "TEMP",
    quality: "N",
    details: "The TemperatureUnit attribute shall indicate the unit for the Node to use only when conveying temperature in communication to the user. If provided, this value shall take priority over any unit implied through the ActiveLocale Attribute.",
    xref: { document: "core", section: "11.5.6.1" }
  }),
  (0, import_elements.DatatypeElement)(
    { name: "TempUnitEnum", type: "enum8", xref: { document: "core", section: "11.5.5.1" } },
    (0, import_elements.FieldElement)({ name: "Fahrenheit", id: 0, conformance: "M", description: "Temperature conveyed in Fahrenheit" }),
    (0, import_elements.FieldElement)({ name: "Celsius", id: 1, conformance: "M", description: "Temperature conveyed in Celsius" }),
    (0, import_elements.FieldElement)({ name: "Kelvin", id: 2, conformance: "M", description: "Temperature conveyed in Kelvin" })
  )
);
import_MatterDefinition.MatterDefinition.children.push(UnitLocalization);
//# sourceMappingURL=UnitLocalization.js.map
