/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import { IdentifyClient as BaseIdentifyClient } from "../behaviors/identify/IdentifyClient.js";
import { OnOffClient as BaseOnOffClient } from "../behaviors/on-off/OnOffClient.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 OnOffLightSwitchRequirements;
((OnOffLightSwitchRequirements2) => {
  OnOffLightSwitchRequirements2.IdentifyServer = BaseIdentifyServer;
  OnOffLightSwitchRequirements2.IdentifyClient = BaseIdentifyClient;
  OnOffLightSwitchRequirements2.OnOffClient = BaseOnOffClient;
  OnOffLightSwitchRequirements2.GroupsClient = BaseGroupsClient;
  OnOffLightSwitchRequirements2.ScenesManagementClient = BaseScenesManagementClient;
  OnOffLightSwitchRequirements2.server = { mandatory: { Identify: OnOffLightSwitchRequirements2.IdentifyServer } };
  OnOffLightSwitchRequirements2.client = {
    mandatory: { Identify: OnOffLightSwitchRequirements2.IdentifyClient, OnOff: OnOffLightSwitchRequirements2.OnOffClient },
    optional: { Groups: OnOffLightSwitchRequirements2.GroupsClient, ScenesManagement: OnOffLightSwitchRequirements2.ScenesManagementClient }
  };
})(OnOffLightSwitchRequirements || (OnOffLightSwitchRequirements = {}));
const OnOffLightSwitchDeviceDefinition = MutableEndpoint({
  name: "OnOffLightSwitch",
  deviceType: 259,
  deviceRevision: 3,
  requirements: OnOffLightSwitchRequirements,
  behaviors: SupportedBehaviors(OnOffLightSwitchRequirements.server.mandatory.Identify)
});
Object.freeze(OnOffLightSwitchDeviceDefinition);
const OnOffLightSwitchDevice = OnOffLightSwitchDeviceDefinition;
export {
  OnOffLightSwitchDevice,
  OnOffLightSwitchDeviceDefinition,
  OnOffLightSwitchRequirements
};
//# sourceMappingURL=on-off-light-switch.js.map
