/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import { WindowCoveringServer as BaseWindowCoveringServer } from "../behaviors/window-covering/WindowCoveringServer.js";
import { GroupsServer as BaseGroupsServer } from "../behaviors/groups/GroupsServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var WindowCoveringRequirements;
((WindowCoveringRequirements2) => {
  WindowCoveringRequirements2.IdentifyServer = BaseIdentifyServer;
  WindowCoveringRequirements2.WindowCoveringServer = BaseWindowCoveringServer;
  WindowCoveringRequirements2.GroupsServer = BaseGroupsServer;
  WindowCoveringRequirements2.server = {
    mandatory: { Identify: WindowCoveringRequirements2.IdentifyServer, WindowCovering: WindowCoveringRequirements2.WindowCoveringServer },
    optional: { Groups: WindowCoveringRequirements2.GroupsServer }
  };
})(WindowCoveringRequirements || (WindowCoveringRequirements = {}));
const WindowCoveringDeviceDefinition = MutableEndpoint({
  name: "WindowCovering",
  deviceType: 514,
  deviceRevision: 4,
  requirements: WindowCoveringRequirements,
  behaviors: SupportedBehaviors(WindowCoveringRequirements.server.mandatory.Identify)
});
Object.freeze(WindowCoveringDeviceDefinition);
const WindowCoveringDevice = WindowCoveringDeviceDefinition;
export {
  WindowCoveringDevice,
  WindowCoveringDeviceDefinition,
  WindowCoveringRequirements
};
//# sourceMappingURL=window-covering.js.map
