/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
import {
  TemperatureControlServer as BaseTemperatureControlServer
} from "../behaviors/temperature-control/TemperatureControlServer.js";
import {
  TemperatureMeasurementServer as BaseTemperatureMeasurementServer
} from "../behaviors/temperature-measurement/TemperatureMeasurementServer.js";
import {
  RefrigeratorAndTemperatureControlledCabinetModeServer as BaseRefrigeratorAndTemperatureControlledCabinetModeServer
} from "../behaviors/refrigerator-and-temperature-controlled-cabinet-mode/RefrigeratorAndTemperatureControlledCabinetModeServer.js";
import { OvenModeServer as BaseOvenModeServer } from "../behaviors/oven-mode/OvenModeServer.js";
import {
  OvenCavityOperationalStateServer as BaseOvenCavityOperationalStateServer
} from "../behaviors/oven-cavity-operational-state/OvenCavityOperationalStateServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var TemperatureControlledCabinetRequirements;
((TemperatureControlledCabinetRequirements2) => {
  TemperatureControlledCabinetRequirements2.TemperatureControlServer = BaseTemperatureControlServer.with("TemperatureNumber");
  TemperatureControlledCabinetRequirements2.TemperatureMeasurementServer = BaseTemperatureMeasurementServer;
  TemperatureControlledCabinetRequirements2.RefrigeratorAndTemperatureControlledCabinetModeServer = BaseRefrigeratorAndTemperatureControlledCabinetModeServer;
  TemperatureControlledCabinetRequirements2.OvenModeServer = BaseOvenModeServer;
  TemperatureControlledCabinetRequirements2.OvenCavityOperationalStateServer = BaseOvenCavityOperationalStateServer.alter({ events: { operationCompletion: { optional: false } } });
  TemperatureControlledCabinetRequirements2.server = {
    mandatory: { TemperatureControl: TemperatureControlledCabinetRequirements2.TemperatureControlServer },
    optional: {
      TemperatureMeasurement: TemperatureControlledCabinetRequirements2.TemperatureMeasurementServer,
      RefrigeratorAndTemperatureControlledCabinetMode: TemperatureControlledCabinetRequirements2.RefrigeratorAndTemperatureControlledCabinetModeServer,
      OvenMode: TemperatureControlledCabinetRequirements2.OvenModeServer,
      OvenCavityOperationalState: TemperatureControlledCabinetRequirements2.OvenCavityOperationalStateServer
    }
  };
})(TemperatureControlledCabinetRequirements || (TemperatureControlledCabinetRequirements = {}));
const TemperatureControlledCabinetDeviceDefinition = MutableEndpoint({
  name: "TemperatureControlledCabinet",
  deviceType: 113,
  deviceRevision: 5,
  requirements: TemperatureControlledCabinetRequirements,
  behaviors: SupportedBehaviors()
});
Object.freeze(TemperatureControlledCabinetDeviceDefinition);
const TemperatureControlledCabinetDevice = TemperatureControlledCabinetDeviceDefinition;
export {
  TemperatureControlledCabinetDevice,
  TemperatureControlledCabinetDeviceDefinition,
  TemperatureControlledCabinetRequirements
};
//# sourceMappingURL=temperature-controlled-cabinet.js.map
