/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import { IdentifyServer as BaseIdentifyServer } from "../behaviors/identify/IdentifyServer.js";
import {
  ValveConfigurationAndControlServer as BaseValveConfigurationAndControlServer
} from "../behaviors/valve-configuration-and-control/ValveConfigurationAndControlServer.js";
import { FlowMeasurementServer as BaseFlowMeasurementServer } from "../behaviors/flow-measurement/FlowMeasurementServer.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 WaterValveRequirements;
((WaterValveRequirements2) => {
  WaterValveRequirements2.IdentifyServer = BaseIdentifyServer;
  WaterValveRequirements2.ValveConfigurationAndControlServer = BaseValveConfigurationAndControlServer;
  WaterValveRequirements2.FlowMeasurementServer = BaseFlowMeasurementServer;
  WaterValveRequirements2.FlowMeasurementBehavior = BaseFlowMeasurementBehavior;
  WaterValveRequirements2.server = {
    mandatory: { Identify: WaterValveRequirements2.IdentifyServer, ValveConfigurationAndControl: WaterValveRequirements2.ValveConfigurationAndControlServer },
    optional: { FlowMeasurement: WaterValveRequirements2.FlowMeasurementServer }
  };
  WaterValveRequirements2.client = { optional: { FlowMeasurement: WaterValveRequirements2.FlowMeasurementBehavior }, mandatory: {} };
})(WaterValveRequirements || (WaterValveRequirements = {}));
const WaterValveDeviceDefinition = MutableEndpoint({
  name: "WaterValve",
  deviceType: 66,
  deviceRevision: 1,
  requirements: WaterValveRequirements,
  behaviors: SupportedBehaviors(
    WaterValveRequirements.server.mandatory.Identify,
    WaterValveRequirements.server.mandatory.ValveConfigurationAndControl
  )
});
Object.freeze(WaterValveDeviceDefinition);
const WaterValveDevice = WaterValveDeviceDefinition;
export {
  WaterValveDevice,
  WaterValveDeviceDefinition,
  WaterValveRequirements
};
//# sourceMappingURL=water-valve.js.map
