/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import { OnOffClient as BaseOnOffClient } from "../behaviors/on-off/OnOffClient.js";
import {
  PumpConfigurationAndControlClient as BasePumpConfigurationAndControlClient
} from "../behaviors/pump-configuration-and-control/PumpConfigurationAndControlClient.js";
import { IdentifyClient as BaseIdentifyClient } from "../behaviors/identify/IdentifyClient.js";
import { GroupsClient as BaseGroupsClient } from "../behaviors/groups/GroupsClient.js";
import { LevelControlClient as BaseLevelControlClient } from "../behaviors/level-control/LevelControlClient.js";
import {
  ScenesManagementClient as BaseScenesManagementClient
} from "../behaviors/scenes-management/ScenesManagementClient.js";
import {
  TemperatureMeasurementClient as BaseTemperatureMeasurementClient
} from "../behaviors/temperature-measurement/TemperatureMeasurementClient.js";
import {
  PressureMeasurementClient as BasePressureMeasurementClient
} from "../behaviors/pressure-measurement/PressureMeasurementClient.js";
import { FlowMeasurementClient as BaseFlowMeasurementClient } from "../behaviors/flow-measurement/FlowMeasurementClient.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var PumpControllerRequirements;
((PumpControllerRequirements2) => {
  PumpControllerRequirements2.IdentifyServer = BaseIdentifyServer;
  PumpControllerRequirements2.OnOffClient = BaseOnOffClient;
  PumpControllerRequirements2.PumpConfigurationAndControlClient = BasePumpConfigurationAndControlClient;
  PumpControllerRequirements2.IdentifyClient = BaseIdentifyClient;
  PumpControllerRequirements2.GroupsClient = BaseGroupsClient;
  PumpControllerRequirements2.LevelControlClient = BaseLevelControlClient;
  PumpControllerRequirements2.ScenesManagementClient = BaseScenesManagementClient;
  PumpControllerRequirements2.TemperatureMeasurementClient = BaseTemperatureMeasurementClient;
  PumpControllerRequirements2.PressureMeasurementClient = BasePressureMeasurementClient;
  PumpControllerRequirements2.FlowMeasurementClient = BaseFlowMeasurementClient;
  PumpControllerRequirements2.server = { mandatory: { Identify: PumpControllerRequirements2.IdentifyServer } };
  PumpControllerRequirements2.client = {
    mandatory: { OnOff: PumpControllerRequirements2.OnOffClient, PumpConfigurationAndControl: PumpControllerRequirements2.PumpConfigurationAndControlClient },
    optional: {
      Identify: PumpControllerRequirements2.IdentifyClient,
      Groups: PumpControllerRequirements2.GroupsClient,
      LevelControl: PumpControllerRequirements2.LevelControlClient,
      ScenesManagement: PumpControllerRequirements2.ScenesManagementClient,
      TemperatureMeasurement: PumpControllerRequirements2.TemperatureMeasurementClient,
      PressureMeasurement: PumpControllerRequirements2.PressureMeasurementClient,
      FlowMeasurement: PumpControllerRequirements2.FlowMeasurementClient
    }
  };
})(PumpControllerRequirements || (PumpControllerRequirements = {}));
const PumpControllerDeviceDefinition = MutableEndpoint({
  name: "PumpController",
  deviceType: 772,
  deviceRevision: 4,
  requirements: PumpControllerRequirements,
  behaviors: SupportedBehaviors(PumpControllerRequirements.server.mandatory.Identify)
});
Object.freeze(PumpControllerDeviceDefinition);
const PumpControllerDevice = PumpControllerDeviceDefinition;
export {
  PumpControllerDevice,
  PumpControllerDeviceDefinition,
  PumpControllerRequirements
};
//# sourceMappingURL=pump-controller.js.map
