/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { DoorLockClient as BaseDoorLockClient } from "../behaviors/door-lock/DoorLockClient.js";
import { GroupsClient as BaseGroupsClient } from "../behaviors/groups/GroupsClient.js";
import {
  ScenesManagementClient as BaseScenesManagementClient
} from "../behaviors/scenes-management/ScenesManagementClient.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var DoorLockControllerRequirements;
((DoorLockControllerRequirements2) => {
  DoorLockControllerRequirements2.DoorLockClient = BaseDoorLockClient;
  DoorLockControllerRequirements2.GroupsClient = BaseGroupsClient;
  DoorLockControllerRequirements2.ScenesManagementClient = BaseScenesManagementClient;
  DoorLockControllerRequirements2.client = {
    mandatory: { DoorLock: DoorLockControllerRequirements2.DoorLockClient },
    optional: { Groups: DoorLockControllerRequirements2.GroupsClient, ScenesManagement: DoorLockControllerRequirements2.ScenesManagementClient }
  };
})(DoorLockControllerRequirements || (DoorLockControllerRequirements = {}));
const DoorLockControllerDeviceDefinition = MutableEndpoint({
  name: "DoorLockController",
  deviceType: 11,
  deviceRevision: 3,
  requirements: DoorLockControllerRequirements,
  behaviors: SupportedBehaviors()
});
Object.freeze(DoorLockControllerDeviceDefinition);
const DoorLockControllerDevice = DoorLockControllerDeviceDefinition;
export {
  DoorLockControllerDevice,
  DoorLockControllerDeviceDefinition,
  DoorLockControllerRequirements
};
//# sourceMappingURL=door-lock-controller.js.map
