/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import {
  OccupancySensingServer as BaseOccupancySensingServer
} from "../behaviors/occupancy-sensing/OccupancySensingServer.js";
import {
  BooleanStateConfigurationServer as BaseBooleanStateConfigurationServer
} from "../behaviors/boolean-state-configuration/BooleanStateConfigurationServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var OccupancySensorRequirements;
((OccupancySensorRequirements2) => {
  OccupancySensorRequirements2.IdentifyServer = BaseIdentifyServer;
  OccupancySensorRequirements2.OccupancySensingServer = BaseOccupancySensingServer;
  OccupancySensorRequirements2.BooleanStateConfigurationServer = BaseBooleanStateConfigurationServer;
  OccupancySensorRequirements2.server = {
    mandatory: { Identify: OccupancySensorRequirements2.IdentifyServer, OccupancySensing: OccupancySensorRequirements2.OccupancySensingServer },
    optional: { BooleanStateConfiguration: OccupancySensorRequirements2.BooleanStateConfigurationServer }
  };
})(OccupancySensorRequirements || (OccupancySensorRequirements = {}));
const OccupancySensorDeviceDefinition = MutableEndpoint({
  name: "OccupancySensor",
  deviceType: 263,
  deviceRevision: 4,
  requirements: OccupancySensorRequirements,
  behaviors: SupportedBehaviors(OccupancySensorRequirements.server.mandatory.Identify)
});
Object.freeze(OccupancySensorDeviceDefinition);
const OccupancySensorDevice = OccupancySensorDeviceDefinition;
export {
  OccupancySensorDevice,
  OccupancySensorDeviceDefinition,
  OccupancySensorRequirements
};
//# sourceMappingURL=occupancy-sensor.js.map
