/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import { FanControlServer as BaseFanControlServer } from "../behaviors/fan-control/FanControlServer.js";
import { GroupsServer as BaseGroupsServer } from "../behaviors/groups/GroupsServer.js";
import { OnOffServer as BaseOnOffServer } from "../behaviors/on-off/OnOffServer.js";
import {
  HepaFilterMonitoringServer as BaseHepaFilterMonitoringServer
} from "../behaviors/hepa-filter-monitoring/HepaFilterMonitoringServer.js";
import {
  ActivatedCarbonFilterMonitoringServer as BaseActivatedCarbonFilterMonitoringServer
} from "../behaviors/activated-carbon-filter-monitoring/ActivatedCarbonFilterMonitoringServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var AirPurifierRequirements;
((AirPurifierRequirements2) => {
  AirPurifierRequirements2.IdentifyServer = BaseIdentifyServer;
  AirPurifierRequirements2.FanControlServer = BaseFanControlServer;
  AirPurifierRequirements2.GroupsServer = BaseGroupsServer;
  AirPurifierRequirements2.OnOffServer = BaseOnOffServer;
  AirPurifierRequirements2.HepaFilterMonitoringServer = BaseHepaFilterMonitoringServer;
  AirPurifierRequirements2.ActivatedCarbonFilterMonitoringServer = BaseActivatedCarbonFilterMonitoringServer;
  AirPurifierRequirements2.server = {
    mandatory: { Identify: AirPurifierRequirements2.IdentifyServer, FanControl: AirPurifierRequirements2.FanControlServer },
    optional: {
      Groups: AirPurifierRequirements2.GroupsServer,
      OnOff: AirPurifierRequirements2.OnOffServer,
      HepaFilterMonitoring: AirPurifierRequirements2.HepaFilterMonitoringServer,
      ActivatedCarbonFilterMonitoring: AirPurifierRequirements2.ActivatedCarbonFilterMonitoringServer
    }
  };
})(AirPurifierRequirements || (AirPurifierRequirements = {}));
const AirPurifierDeviceDefinition = MutableEndpoint({
  name: "AirPurifier",
  deviceType: 45,
  deviceRevision: 2,
  requirements: AirPurifierRequirements,
  behaviors: SupportedBehaviors(
    AirPurifierRequirements.server.mandatory.Identify,
    AirPurifierRequirements.server.mandatory.FanControl
  )
});
Object.freeze(AirPurifierDeviceDefinition);
const AirPurifierDevice = AirPurifierDeviceDefinition;
export {
  AirPurifierDevice,
  AirPurifierDeviceDefinition,
  AirPurifierRequirements
};
//# sourceMappingURL=air-purifier.js.map
