/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import { IdentifyBehavior as BaseIdentifyBehavior } from "../behaviors/identify/IdentifyBehavior.js";
import { OnOffBehavior as BaseOnOffBehavior } from "../behaviors/on-off/OnOffBehavior.js";
import { LevelControlBehavior as BaseLevelControlBehavior } from "../behaviors/level-control/LevelControlBehavior.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 DimmerSwitchRequirements;
((DimmerSwitchRequirements2) => {
  DimmerSwitchRequirements2.IdentifyServer = BaseIdentifyServer;
  DimmerSwitchRequirements2.IdentifyBehavior = BaseIdentifyBehavior;
  DimmerSwitchRequirements2.OnOffBehavior = BaseOnOffBehavior;
  DimmerSwitchRequirements2.LevelControlBehavior = BaseLevelControlBehavior;
  DimmerSwitchRequirements2.GroupsBehavior = BaseGroupsBehavior;
  DimmerSwitchRequirements2.ScenesManagementBehavior = BaseScenesManagementBehavior;
  DimmerSwitchRequirements2.server = { mandatory: { Identify: DimmerSwitchRequirements2.IdentifyServer } };
  DimmerSwitchRequirements2.client = {
    mandatory: { Identify: DimmerSwitchRequirements2.IdentifyBehavior, OnOff: DimmerSwitchRequirements2.OnOffBehavior, LevelControl: DimmerSwitchRequirements2.LevelControlBehavior },
    optional: { Groups: DimmerSwitchRequirements2.GroupsBehavior, ScenesManagement: DimmerSwitchRequirements2.ScenesManagementBehavior }
  };
})(DimmerSwitchRequirements || (DimmerSwitchRequirements = {}));
const DimmerSwitchDeviceDefinition = MutableEndpoint({
  name: "DimmerSwitch",
  deviceType: 260,
  deviceRevision: 3,
  requirements: DimmerSwitchRequirements,
  behaviors: SupportedBehaviors(DimmerSwitchRequirements.server.mandatory.Identify)
});
Object.freeze(DimmerSwitchDeviceDefinition);
const DimmerSwitchDevice = DimmerSwitchDeviceDefinition;
export {
  DimmerSwitchDevice,
  DimmerSwitchDeviceDefinition,
  DimmerSwitchRequirements
};
//# sourceMappingURL=dimmer-switch.js.map
