/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import { DoorLockServer as BaseDoorLockServer } from "../behaviors/door-lock/DoorLockServer.js";
import { GroupsServer as BaseGroupsServer } from "../behaviors/groups/GroupsServer.js";
import {
  ScenesManagementServer as BaseScenesManagementServer
} from "../behaviors/scenes-management/ScenesManagementServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var DoorLockRequirements;
((DoorLockRequirements2) => {
  DoorLockRequirements2.IdentifyServer = BaseIdentifyServer;
  DoorLockRequirements2.DoorLockServer = BaseDoorLockServer;
  DoorLockRequirements2.GroupsServer = BaseGroupsServer;
  DoorLockRequirements2.ScenesManagementServer = BaseScenesManagementServer;
  DoorLockRequirements2.server = {
    mandatory: { Identify: DoorLockRequirements2.IdentifyServer, DoorLock: DoorLockRequirements2.DoorLockServer },
    optional: { Groups: DoorLockRequirements2.GroupsServer, ScenesManagement: DoorLockRequirements2.ScenesManagementServer }
  };
})(DoorLockRequirements || (DoorLockRequirements = {}));
const DoorLockDeviceDefinition = MutableEndpoint({
  name: "DoorLock",
  deviceType: 10,
  deviceRevision: 3,
  requirements: DoorLockRequirements,
  behaviors: SupportedBehaviors(
    DoorLockRequirements.server.mandatory.Identify,
    DoorLockRequirements.server.mandatory.DoorLock
  )
});
Object.freeze(DoorLockDeviceDefinition);
const DoorLockDevice = DoorLockDeviceDefinition;
export {
  DoorLockDevice,
  DoorLockDeviceDefinition,
  DoorLockRequirements
};
//# sourceMappingURL=door-lock.js.map
