/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { DeviceTypeElement } from "../elements/index.js";
import { Model } from "./Model.js";
import { RequirementModel } from "./RequirementModel.js";
class DeviceTypeModel extends Model {
  tag = DeviceTypeElement.Tag;
  classification;
  get requirements() {
    return this.all(RequirementModel);
  }
  get revision() {
    return this?.get(RequirementModel, "Descriptor")?.get(RequirementModel, "DeviceTypeList")?.default[0].revision ?? 1;
  }
  constructor(definition, ...children) {
    super(definition, ...children);
    this.classification = definition.classification;
  }
  toElement(omitResources = false, extra) {
    return super.toElement(omitResources, {
      classification: this.classification,
      ...extra
    });
  }
  get id() {
    return super.id;
  }
  set id(id) {
    super.id = id;
  }
  static Tag = DeviceTypeElement.Tag;
}
DeviceTypeModel.register();
export {
  DeviceTypeModel
};
//# sourceMappingURL=DeviceTypeModel.js.map
