/**
 * @license
 * Copyright 2022-2025 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 { OnOffServer as BaseOnOffServer } from "../behaviors/on-off/OnOffServer.js";
import { MutableEndpoint } from "../endpoint/type/MutableEndpoint.js";
import { SupportedBehaviors } from "../endpoint/properties/SupportedBehaviors.js";
var CookSurfaceRequirements;
((CookSurfaceRequirements2) => {
  CookSurfaceRequirements2.TemperatureControlServer = BaseTemperatureControlServer.with("TemperatureLevel");
  CookSurfaceRequirements2.TemperatureMeasurementServer = BaseTemperatureMeasurementServer;
  CookSurfaceRequirements2.OnOffServer = BaseOnOffServer.with("OffOnly");
  CookSurfaceRequirements2.server = {
    optional: {
      TemperatureControl: CookSurfaceRequirements2.TemperatureControlServer,
      TemperatureMeasurement: CookSurfaceRequirements2.TemperatureMeasurementServer,
      OnOff: CookSurfaceRequirements2.OnOffServer
    },
    mandatory: {}
  };
})(CookSurfaceRequirements || (CookSurfaceRequirements = {}));
const CookSurfaceDeviceDefinition = MutableEndpoint({
  name: "CookSurface",
  deviceType: 119,
  deviceRevision: 2,
  requirements: CookSurfaceRequirements,
  behaviors: SupportedBehaviors()
});
Object.freeze(CookSurfaceDeviceDefinition);
const CookSurfaceDevice = CookSurfaceDeviceDefinition;
export {
  CookSurfaceDevice,
  CookSurfaceDeviceDefinition,
  CookSurfaceRequirements
};
//# sourceMappingURL=cook-surface.js.map
