/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import {
  TimeSynchronizationServer as BaseTimeSynchronizationServer
} from "../behaviors/time-synchronization/TimeSynchronizationServer.js";
import { DoorLockBehavior as BaseDoorLockBehavior } from "../behaviors/door-lock/DoorLockBehavior.js";
import { GroupsBehavior as BaseGroupsBehavior } from "../behaviors/groups/GroupsBehavior.js";
import {
  ScenesManagementBehavior as BaseScenesManagementBehavior
} from "../behaviors/scenes-management/ScenesManagementBehavior.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var DoorLockControllerRequirements;
((DoorLockControllerRequirements2) => {
  DoorLockControllerRequirements2.TimeSynchronizationServer = BaseTimeSynchronizationServer;
  DoorLockControllerRequirements2.DoorLockBehavior = BaseDoorLockBehavior;
  DoorLockControllerRequirements2.GroupsBehavior = BaseGroupsBehavior;
  DoorLockControllerRequirements2.ScenesManagementBehavior = BaseScenesManagementBehavior;
  DoorLockControllerRequirements2.server = { optional: { TimeSynchronization: DoorLockControllerRequirements2.TimeSynchronizationServer }, mandatory: {} };
  DoorLockControllerRequirements2.client = {
    mandatory: { DoorLock: DoorLockControllerRequirements2.DoorLockBehavior },
    optional: { Groups: DoorLockControllerRequirements2.GroupsBehavior, ScenesManagement: DoorLockControllerRequirements2.ScenesManagementBehavior }
  };
})(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
