/**
 * @license
 * Copyright 2022-2025 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import { OnOffBehavior as BaseOnOffBehavior } from "../behaviors/on-off/OnOffBehavior.js";
import {
  PumpConfigurationAndControlBehavior as BasePumpConfigurationAndControlBehavior
} from "../behaviors/pump-configuration-and-control/PumpConfigurationAndControlBehavior.js";
import { IdentifyBehavior as BaseIdentifyBehavior } from "../behaviors/identify/IdentifyBehavior.js";
import { GroupsBehavior as BaseGroupsBehavior } from "../behaviors/groups/GroupsBehavior.js";
import { LevelControlBehavior as BaseLevelControlBehavior } from "../behaviors/level-control/LevelControlBehavior.js";
import {
  ScenesManagementBehavior as BaseScenesManagementBehavior
} from "../behaviors/scenes-management/ScenesManagementBehavior.js";
import {
  TemperatureMeasurementBehavior as BaseTemperatureMeasurementBehavior
} from "../behaviors/temperature-measurement/TemperatureMeasurementBehavior.js";
import {
  PressureMeasurementBehavior as BasePressureMeasurementBehavior
} from "../behaviors/pressure-measurement/PressureMeasurementBehavior.js";
import {
  FlowMeasurementBehavior as BaseFlowMeasurementBehavior
} from "../behaviors/flow-measurement/FlowMeasurementBehavior.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var PumpControllerRequirements;
((PumpControllerRequirements2) => {
  PumpControllerRequirements2.IdentifyServer = BaseIdentifyServer;
  PumpControllerRequirements2.OnOffBehavior = BaseOnOffBehavior;
  PumpControllerRequirements2.PumpConfigurationAndControlBehavior = BasePumpConfigurationAndControlBehavior;
  PumpControllerRequirements2.IdentifyBehavior = BaseIdentifyBehavior;
  PumpControllerRequirements2.GroupsBehavior = BaseGroupsBehavior;
  PumpControllerRequirements2.LevelControlBehavior = BaseLevelControlBehavior;
  PumpControllerRequirements2.ScenesManagementBehavior = BaseScenesManagementBehavior;
  PumpControllerRequirements2.TemperatureMeasurementBehavior = BaseTemperatureMeasurementBehavior;
  PumpControllerRequirements2.PressureMeasurementBehavior = BasePressureMeasurementBehavior;
  PumpControllerRequirements2.FlowMeasurementBehavior = BaseFlowMeasurementBehavior;
  PumpControllerRequirements2.server = { mandatory: { Identify: PumpControllerRequirements2.IdentifyServer } };
  PumpControllerRequirements2.client = {
    mandatory: { OnOff: PumpControllerRequirements2.OnOffBehavior, PumpConfigurationAndControl: PumpControllerRequirements2.PumpConfigurationAndControlBehavior },
    optional: {
      Identify: PumpControllerRequirements2.IdentifyBehavior,
      Groups: PumpControllerRequirements2.GroupsBehavior,
      LevelControl: PumpControllerRequirements2.LevelControlBehavior,
      ScenesManagement: PumpControllerRequirements2.ScenesManagementBehavior,
      TemperatureMeasurement: PumpControllerRequirements2.TemperatureMeasurementBehavior,
      PressureMeasurement: PumpControllerRequirements2.PressureMeasurementBehavior,
      FlowMeasurement: PumpControllerRequirements2.FlowMeasurementBehavior
    }
  };
})(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
