/**
 * @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 { GroupsClient as BaseGroupsClient } from "../behaviors/groups/GroupsClient.js";
import { OnOffClient as BaseOnOffClient } from "../behaviors/on-off/OnOffClient.js";
import { LevelControlClient as BaseLevelControlClient } from "../behaviors/level-control/LevelControlClient.js";
import {
  ScenesManagementClient as BaseScenesManagementClient
} from "../behaviors/scenes-management/ScenesManagementClient.js";
import { ColorControlClient as BaseColorControlClient } from "../behaviors/color-control/ColorControlClient.js";
import {
  IlluminanceMeasurementClient as BaseIlluminanceMeasurementClient
} from "../behaviors/illuminance-measurement/IlluminanceMeasurementClient.js";
import {
  OccupancySensingClient as BaseOccupancySensingClient
} from "../behaviors/occupancy-sensing/OccupancySensingClient.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var ControlBridgeRequirements;
((ControlBridgeRequirements2) => {
  ControlBridgeRequirements2.IdentifyServer = BaseIdentifyServer;
  ControlBridgeRequirements2.IdentifyClient = BaseIdentifyClient;
  ControlBridgeRequirements2.GroupsClient = BaseGroupsClient;
  ControlBridgeRequirements2.OnOffClient = BaseOnOffClient;
  ControlBridgeRequirements2.LevelControlClient = BaseLevelControlClient;
  ControlBridgeRequirements2.ScenesManagementClient = BaseScenesManagementClient;
  ControlBridgeRequirements2.ColorControlClient = BaseColorControlClient;
  ControlBridgeRequirements2.IlluminanceMeasurementClient = BaseIlluminanceMeasurementClient;
  ControlBridgeRequirements2.OccupancySensingClient = BaseOccupancySensingClient;
  ControlBridgeRequirements2.server = { mandatory: { Identify: ControlBridgeRequirements2.IdentifyServer } };
  ControlBridgeRequirements2.client = {
    mandatory: {
      Identify: ControlBridgeRequirements2.IdentifyClient,
      Groups: ControlBridgeRequirements2.GroupsClient,
      OnOff: ControlBridgeRequirements2.OnOffClient,
      LevelControl: ControlBridgeRequirements2.LevelControlClient,
      ScenesManagement: ControlBridgeRequirements2.ScenesManagementClient,
      ColorControl: ControlBridgeRequirements2.ColorControlClient
    },
    optional: { IlluminanceMeasurement: ControlBridgeRequirements2.IlluminanceMeasurementClient, OccupancySensing: ControlBridgeRequirements2.OccupancySensingClient }
  };
})(ControlBridgeRequirements || (ControlBridgeRequirements = {}));
const ControlBridgeDeviceDefinition = MutableEndpoint({
  name: "ControlBridge",
  deviceType: 2112,
  deviceRevision: 3,
  requirements: ControlBridgeRequirements,
  behaviors: SupportedBehaviors(ControlBridgeRequirements.server.mandatory.Identify)
});
Object.freeze(ControlBridgeDeviceDefinition);
const ControlBridgeDevice = ControlBridgeDeviceDefinition;
export {
  ControlBridgeDevice,
  ControlBridgeDeviceDefinition,
  ControlBridgeRequirements
};
//# sourceMappingURL=control-bridge.js.map
