import { __decorateMetadata } from "../../../../../_virtual/_@oxc-project_runtime@0.94.0/helpers/decorateMetadata.mjs";
import { __decorate } from "../../../../../_virtual/_@oxc-project_runtime@0.94.0/helpers/decorate.mjs";
import { IsValidMessageType, parseMessageType } from "../../util/messageType.mjs";
import { DidCommMessage } from "../../DidCommMessage.mjs";
import { IsEnum } from "class-validator";

//#region ../didcomm/src/messages/common/DidCommAckMessage.ts
var _ref;
/**
* Ack message status types
*/
let AckStatus = /* @__PURE__ */ function(AckStatus$1) {
	AckStatus$1["OK"] = "OK";
	AckStatus$1["PENDING"] = "PENDING";
	return AckStatus$1;
}({});
/**
* @see https://github.com/hyperledger/aries-rfcs/blob/master/features/0015-acks/README.md#explicit-acks
*/
var DidCommAckMessage = class DidCommAckMessage extends DidCommMessage {
	/**
	* Create new AckMessage instance.
	* @param options
	*/
	constructor(options) {
		super();
		this.type = DidCommAckMessage.type.messageTypeUri;
		if (options) {
			this.id = options.id || this.generateId();
			this.status = options.status;
			this.setThread({ threadId: options.threadId });
		}
	}
};
DidCommAckMessage.type = parseMessageType("https://didcomm.org/notification/1.0/ack");
__decorate([IsValidMessageType(DidCommAckMessage.type), __decorateMetadata("design:type", String)], DidCommAckMessage.prototype, "type", void 0);
__decorate([IsEnum(AckStatus), __decorateMetadata("design:type", typeof (_ref = typeof AckStatus !== "undefined" && AckStatus) === "function" ? _ref : Object)], DidCommAckMessage.prototype, "status", void 0);

//#endregion
export { AckStatus, DidCommAckMessage };
//# sourceMappingURL=DidCommAckMessage.mjs.map