const require_rolldown_runtime = require('../../../../../_virtual/rolldown_runtime.js');
const require_index = require('../../../../../node_modules/.pnpm/class-transformer@0.5.1/node_modules/class-transformer/cjs/index.js');
const require_index$1 = require('../../../../../node_modules/.pnpm/class-validator@0.14.1/node_modules/class-validator/cjs/index.js');
const require_decorateMetadata = require('../../../../../_virtual/_@oxc-project_runtime@0.94.0/helpers/decorateMetadata.js');
const require_decorate = require('../../../../../_virtual/_@oxc-project_runtime@0.94.0/helpers/decorate.js');
const require_messageType = require('../../util/messageType.js');
const require_DidCommMessage = require('../../DidCommMessage.js');

//#region ../didcomm/src/messages/problem-reports/DidCommProblemReportMessage.ts
var import_cjs = /* @__PURE__ */ require_rolldown_runtime.__toESM(require_index.require_cjs());
var import_cjs$1 = /* @__PURE__ */ require_rolldown_runtime.__toESM(require_index$1.require_cjs());
var _ref, _ref2, _ref3;
let WhoRetriesStatus = /* @__PURE__ */ function(WhoRetriesStatus$1) {
	WhoRetriesStatus$1["You"] = "YOU";
	WhoRetriesStatus$1["Me"] = "ME";
	WhoRetriesStatus$1["Both"] = "BOTH";
	WhoRetriesStatus$1["None"] = "NONE";
	return WhoRetriesStatus$1;
}({});
let ImpactStatus = /* @__PURE__ */ function(ImpactStatus$1) {
	ImpactStatus$1["Message"] = "MESSAGE";
	ImpactStatus$1["Thread"] = "THREAD";
	ImpactStatus$1["Connection"] = "CONNECTION";
	return ImpactStatus$1;
}({});
let WhereStatus = /* @__PURE__ */ function(WhereStatus$1) {
	WhereStatus$1["Cloud"] = "CLOUD";
	WhereStatus$1["Edge"] = "EDGE";
	WhereStatus$1["Wire"] = "WIRE";
	WhereStatus$1["Agency"] = "AGENCY";
	return WhereStatus$1;
}({});
/**
* @see https://github.com/hyperledger/aries-rfcs/blob/main/features/0035-report-problem/README.md
*/
var DidCommProblemReportMessage = class DidCommProblemReportMessage extends require_DidCommMessage.DidCommMessage {
	/**
	* Create new ReportProblem instance.
	* @param options
	*/
	constructor(options) {
		super();
		this.type = DidCommProblemReportMessage.type.messageTypeUri;
		if (options) {
			this.id = options.id || this.generateId();
			this.description = options.description;
			this.problemItems = options.problemItems;
			this.whoRetries = options.whoRetries;
			this.fixHint = options.fixHint;
			this.impact = options.impact;
			this.where = options.where;
			this.noticedTime = options.noticedTime;
			this.trackingUri = options.trackingUri;
			this.escalationUri = options.escalationUri;
		}
	}
};
DidCommProblemReportMessage.type = require_messageType.parseMessageType("https://didcomm.org/notification/1.0/problem-report");
require_decorate.__decorate([require_messageType.IsValidMessageType(DidCommProblemReportMessage.type), require_decorateMetadata.__decorateMetadata("design:type", String)], DidCommProblemReportMessage.prototype, "type", void 0);
require_decorate.__decorate([
	(0, import_cjs$1.IsOptional)(),
	(0, import_cjs.Expose)({ name: "problem_items" }),
	require_decorateMetadata.__decorateMetadata("design:type", Array)
], DidCommProblemReportMessage.prototype, "problemItems", void 0);
require_decorate.__decorate([
	(0, import_cjs$1.IsOptional)(),
	(0, import_cjs$1.IsEnum)(WhoRetriesStatus),
	(0, import_cjs.Expose)({ name: "who_retries" }),
	require_decorateMetadata.__decorateMetadata("design:type", typeof (_ref = typeof WhoRetriesStatus !== "undefined" && WhoRetriesStatus) === "function" ? _ref : Object)
], DidCommProblemReportMessage.prototype, "whoRetries", void 0);
require_decorate.__decorate([
	(0, import_cjs$1.IsOptional)(),
	(0, import_cjs.Expose)({ name: "fix_hint" }),
	require_decorateMetadata.__decorateMetadata("design:type", Object)
], DidCommProblemReportMessage.prototype, "fixHint", void 0);
require_decorate.__decorate([
	(0, import_cjs$1.IsOptional)(),
	(0, import_cjs$1.IsEnum)(WhereStatus),
	require_decorateMetadata.__decorateMetadata("design:type", typeof (_ref2 = typeof WhereStatus !== "undefined" && WhereStatus) === "function" ? _ref2 : Object)
], DidCommProblemReportMessage.prototype, "where", void 0);
require_decorate.__decorate([
	(0, import_cjs$1.IsOptional)(),
	(0, import_cjs$1.IsEnum)(ImpactStatus),
	require_decorateMetadata.__decorateMetadata("design:type", typeof (_ref3 = typeof ImpactStatus !== "undefined" && ImpactStatus) === "function" ? _ref3 : Object)
], DidCommProblemReportMessage.prototype, "impact", void 0);
require_decorate.__decorate([
	(0, import_cjs$1.IsOptional)(),
	(0, import_cjs$1.IsString)(),
	(0, import_cjs.Expose)({ name: "noticed_time" }),
	require_decorateMetadata.__decorateMetadata("design:type", String)
], DidCommProblemReportMessage.prototype, "noticedTime", void 0);
require_decorate.__decorate([
	(0, import_cjs$1.IsOptional)(),
	(0, import_cjs$1.IsString)(),
	(0, import_cjs.Expose)({ name: "tracking_uri" }),
	require_decorateMetadata.__decorateMetadata("design:type", String)
], DidCommProblemReportMessage.prototype, "trackingUri", void 0);
require_decorate.__decorate([
	(0, import_cjs$1.IsOptional)(),
	(0, import_cjs$1.IsString)(),
	(0, import_cjs.Expose)({ name: "escalation_uri" }),
	require_decorateMetadata.__decorateMetadata("design:type", String)
], DidCommProblemReportMessage.prototype, "escalationUri", void 0);

//#endregion
exports.DidCommProblemReportMessage = DidCommProblemReportMessage;
exports.ImpactStatus = ImpactStatus;
exports.WhereStatus = WhereStatus;
exports.WhoRetriesStatus = WhoRetriesStatus;