"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 RetiredElements_exports = {};
__export(RetiredElements_exports, {
  Attribute: () => Attribute,
  Command: () => Command,
  Event: () => Event,
  FabricScopedAttribute: () => FabricScopedAttribute,
  FixedAttribute: () => FixedAttribute,
  OptionalAttribute: () => OptionalAttribute,
  OptionalCommand: () => OptionalCommand,
  OptionalEvent: () => OptionalEvent,
  OptionalFixedAttribute: () => OptionalFixedAttribute,
  OptionalWritableAttribute: () => OptionalWritableAttribute,
  OptionalWritableFabricScopedAttribute: () => OptionalWritableFabricScopedAttribute,
  WritableAttribute: () => WritableAttribute,
  WritableFabricScopedAttribute: () => WritableFabricScopedAttribute,
  WritableFixedAttribute: () => WritableFixedAttribute
});
module.exports = __toCommonJS(RetiredElements_exports);
var import_model = require("@matter/model");
var import_AttributeId = require("../datatype/AttributeId.js");
var import_CommandId = require("../datatype/CommandId.js");
var import_EventId = require("../datatype/EventId.js");
/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
const Attribute = (id, schema, {
  scene = false,
  persistent = false,
  omitChanges = false,
  default: conformanceValue,
  readAcl = import_model.AccessLevel.View,
  timed = false
} = {}) => ({
  id: (0, import_AttributeId.AttributeId)(id),
  schema,
  optional: false,
  writable: false,
  fixed: false,
  scene,
  persistent,
  timed,
  fabricScoped: false,
  omitChanges,
  default: conformanceValue,
  readAcl,
  unknown: false
});
const OptionalAttribute = (id, schema, {
  scene = false,
  persistent = false,
  omitChanges = false,
  default: conformanceValue,
  readAcl = import_model.AccessLevel.View,
  timed = false
} = {}) => ({
  id: (0, import_AttributeId.AttributeId)(id),
  schema,
  optional: true,
  writable: false,
  fixed: false,
  scene,
  persistent,
  fabricScoped: false,
  omitChanges,
  default: conformanceValue,
  readAcl,
  timed,
  unknown: false
});
const WritableAttribute = (id, schema, {
  scene = false,
  persistent = true,
  omitChanges = false,
  default: conformanceValue,
  readAcl = import_model.AccessLevel.View,
  writeAcl = import_model.AccessLevel.View,
  timed = false
} = {}) => ({
  id: (0, import_AttributeId.AttributeId)(id),
  schema,
  optional: false,
  writable: true,
  fixed: false,
  scene,
  persistent,
  fabricScoped: false,
  omitChanges,
  default: conformanceValue,
  readAcl,
  timed,
  writeAcl,
  unknown: false
});
const OptionalWritableAttribute = (id, schema, {
  scene = false,
  persistent = true,
  omitChanges = false,
  default: conformanceValue,
  readAcl = import_model.AccessLevel.View,
  writeAcl = import_model.AccessLevel.View,
  timed = false
} = {}) => ({
  id: (0, import_AttributeId.AttributeId)(id),
  schema,
  optional: true,
  writable: true,
  fixed: false,
  scene,
  persistent,
  fabricScoped: false,
  omitChanges,
  default: conformanceValue,
  readAcl,
  timed,
  writeAcl,
  unknown: false
});
const FabricScopedAttribute = (id, schema, {
  scene = false,
  persistent = true,
  omitChanges = false,
  default: conformanceValue,
  readAcl = import_model.AccessLevel.View,
  timed = false
} = {}) => ({
  id: (0, import_AttributeId.AttributeId)(id),
  schema,
  optional: false,
  writable: false,
  fixed: false,
  scene,
  persistent,
  fabricScoped: true,
  omitChanges,
  default: conformanceValue,
  readAcl,
  timed,
  unknown: false
});
const WritableFabricScopedAttribute = (id, schema, {
  scene = false,
  persistent = true,
  omitChanges = false,
  default: conformanceValue,
  readAcl = import_model.AccessLevel.View,
  writeAcl = import_model.AccessLevel.View,
  timed = false
} = {}) => ({
  id: (0, import_AttributeId.AttributeId)(id),
  schema,
  optional: false,
  writable: true,
  fixed: false,
  scene,
  persistent,
  fabricScoped: true,
  omitChanges,
  default: conformanceValue,
  readAcl,
  timed,
  writeAcl,
  unknown: false
});
const OptionalWritableFabricScopedAttribute = (id, schema, {
  scene = false,
  persistent = true,
  omitChanges = false,
  default: conformanceValue,
  readAcl = import_model.AccessLevel.View,
  writeAcl = import_model.AccessLevel.View,
  timed = false
} = {}) => ({
  id: (0, import_AttributeId.AttributeId)(id),
  schema,
  optional: true,
  writable: true,
  fixed: false,
  scene,
  persistent,
  fabricScoped: true,
  omitChanges,
  default: conformanceValue,
  readAcl,
  timed,
  writeAcl,
  unknown: false
});
const FixedAttribute = (id, schema, {
  scene = false,
  persistent = false,
  omitChanges = false,
  default: conformanceValue,
  readAcl = import_model.AccessLevel.View,
  timed = false
} = {}) => ({
  id: (0, import_AttributeId.AttributeId)(id),
  schema,
  optional: false,
  writable: false,
  fixed: true,
  scene,
  persistent,
  fabricScoped: false,
  omitChanges,
  default: conformanceValue,
  readAcl,
  timed,
  unknown: false
});
const WritableFixedAttribute = (id, schema, {
  scene = false,
  persistent = false,
  omitChanges = false,
  default: conformanceValue,
  readAcl = import_model.AccessLevel.View,
  timed = false
} = {}) => ({
  id: (0, import_AttributeId.AttributeId)(id),
  schema,
  optional: false,
  writable: true,
  fixed: true,
  scene,
  persistent,
  fabricScoped: false,
  omitChanges,
  default: conformanceValue,
  readAcl,
  timed,
  unknown: false
});
const OptionalFixedAttribute = (id, schema, {
  scene = false,
  persistent = false,
  omitChanges = false,
  default: conformanceValue,
  readAcl = import_model.AccessLevel.View,
  timed = false
} = {}) => ({
  id: (0, import_AttributeId.AttributeId)(id),
  schema,
  optional: true,
  writable: false,
  fixed: true,
  scene,
  persistent,
  fabricScoped: false,
  omitChanges,
  default: conformanceValue,
  readAcl,
  timed,
  unknown: false
});
const Command = (requestId, requestSchema, responseId, responseSchema, { invokeAcl = import_model.AccessLevel.Operate, timed = false } = {}) => ({
  optional: false,
  requestId: (0, import_CommandId.CommandId)(requestId),
  requestSchema,
  responseId: (0, import_CommandId.CommandId)(responseId),
  responseSchema,
  invokeAcl,
  timed
});
const OptionalCommand = (requestId, requestSchema, responseId, responseSchema, { invokeAcl = import_model.AccessLevel.Operate, timed = false } = {}) => ({
  optional: true,
  requestId: (0, import_CommandId.CommandId)(requestId),
  requestSchema,
  responseId: (0, import_CommandId.CommandId)(responseId),
  responseSchema,
  invokeAcl,
  timed
});
const Event = (id, priority, schema, { readAcl = import_model.AccessLevel.View } = {}) => ({
  id: (0, import_EventId.EventId)(id),
  schema,
  priority,
  optional: false,
  readAcl,
  unknown: false
});
const OptionalEvent = (id, priority, schema, { readAcl = import_model.AccessLevel.View } = {}) => ({
  id: (0, import_EventId.EventId)(id),
  schema,
  priority,
  optional: true,
  readAcl,
  unknown: false
});
//# sourceMappingURL=RetiredElements.js.map
