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 { Expose } from "class-transformer";
import { IsBoolean, IsOptional, IsString } from "class-validator";

//#region ../didcomm/src/modules/connections/messages/DidCommTrustPingMessage.ts
/**
* Message to initiate trust ping interaction
*
* @see https://github.com/hyperledger/aries-rfcs/blob/master/features/0048-trust-ping/README.md#messages
*/
var DidCommTrustPingMessage = class DidCommTrustPingMessage extends DidCommMessage {
	/**
	* Create new TrustPingMessage instance.
	* responseRequested will be true if not passed
	* @param options
	*/
	constructor(options) {
		super();
		this.allowDidSovPrefix = true;
		this.type = DidCommTrustPingMessage.type.messageTypeUri;
		this.responseRequested = true;
		if (options) {
			this.id = options.id || this.generateId();
			this.comment = options.comment;
			this.responseRequested = options.responseRequested !== void 0 ? options.responseRequested : true;
			if (options.timing) this.setTiming({
				outTime: options.timing.outTime,
				expiresTime: options.timing.expiresTime,
				delayMilli: options.timing.delayMilli
			});
		}
	}
};
DidCommTrustPingMessage.type = parseMessageType("https://didcomm.org/trust_ping/1.0/ping");
__decorate([IsValidMessageType(DidCommTrustPingMessage.type), __decorateMetadata("design:type", Object)], DidCommTrustPingMessage.prototype, "type", void 0);
__decorate([
	IsString(),
	IsOptional(),
	__decorateMetadata("design:type", String)
], DidCommTrustPingMessage.prototype, "comment", void 0);
__decorate([
	IsBoolean(),
	Expose({ name: "response_requested" }),
	__decorateMetadata("design:type", Object)
], DidCommTrustPingMessage.prototype, "responseRequested", void 0);

//#endregion
export { DidCommTrustPingMessage };
//# sourceMappingURL=DidCommTrustPingMessage.mjs.map