"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var RemoteResponse_exports = {};
__export(RemoteResponse_exports, {
  RemoteResponse: () => RemoteResponse
});
module.exports = __toCommonJS(RemoteResponse_exports);
var import_general = require("@matter/general");
/**
 * @license
 * Copyright 2022-2026 Matter.js Authors
 * SPDX-License-Identifier: Apache-2.0
 */
function RemoteResponse(local) {
  switch (local.kind) {
    case "ok":
    case "update":
    case "delete":
      return local;
    case "value":
      return {
        ...local,
        value: local.value.js
      };
    case "error":
      return {
        kind: "error",
        id: local.id,
        code: import_general.MatterError.idFor(local.error.constructor),
        message: local.error.bareMessage ?? local.error.message
      };
    default:
      throw new import_general.InternalError(`Cannot convert local response kind "${local.kind}" to remote response`);
  }
}
((RemoteResponse2) => {
  function describe(response) {
    switch (response.kind) {
      case "update":
        return `update ${response.endpoint} ${response.behavior}`;
      case "delete":
        return `delete ${response.endpoint}`;
      default:
        return response.kind;
    }
  }
  RemoteResponse2.describe = describe;
})(RemoteResponse || (RemoteResponse = {}));
//# sourceMappingURL=RemoteResponse.js.map
