/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { FanControlServer as BaseFanControlServer } from "../behaviors/fan-control/FanControlServer.js";
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.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 ExtractorHoodRequirements;
((ExtractorHoodRequirements2) => {
  ExtractorHoodRequirements2.FanControlServer = BaseFanControlServer;
  ExtractorHoodRequirements2.IdentifyServer = BaseIdentifyServer;
  ExtractorHoodRequirements2.HepaFilterMonitoringServer = BaseHepaFilterMonitoringServer;
  ExtractorHoodRequirements2.ActivatedCarbonFilterMonitoringServer = BaseActivatedCarbonFilterMonitoringServer;
  ExtractorHoodRequirements2.server = {
    mandatory: { FanControl: ExtractorHoodRequirements2.FanControlServer },
    optional: {
      Identify: ExtractorHoodRequirements2.IdentifyServer,
      HepaFilterMonitoring: ExtractorHoodRequirements2.HepaFilterMonitoringServer,
      ActivatedCarbonFilterMonitoring: ExtractorHoodRequirements2.ActivatedCarbonFilterMonitoringServer
    }
  };
})(ExtractorHoodRequirements || (ExtractorHoodRequirements = {}));
const ExtractorHoodDeviceDefinition = MutableEndpoint({
  name: "ExtractorHood",
  deviceType: 122,
  deviceRevision: 1,
  requirements: ExtractorHoodRequirements,
  behaviors: SupportedBehaviors(ExtractorHoodRequirements.server.mandatory.FanControl)
});
Object.freeze(ExtractorHoodDeviceDefinition);
const ExtractorHoodDevice = ExtractorHoodDeviceDefinition;
export {
  ExtractorHoodDevice,
  ExtractorHoodDeviceDefinition,
  ExtractorHoodRequirements
};
//# sourceMappingURL=extractor-hood.js.map
