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_BaseDidCommMessage = require('../../BaseDidCommMessage.js');

//#region ../didcomm/src/decorators/transport/TransportDecorator.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;
/**
* Return route types.
*/
let ReturnRouteTypes = /* @__PURE__ */ function(ReturnRouteTypes$1) {
	/** No messages should be returned over this connection. */
	ReturnRouteTypes$1["none"] = "none";
	/**  All messages for this key should be returned over this connection. */
	ReturnRouteTypes$1["all"] = "all";
	/** Send all messages matching this thread over this connection. */
	ReturnRouteTypes$1["thread"] = "thread";
	return ReturnRouteTypes$1;
}({});
/**
* Represents `~transport` decorator
* @see https://github.com/hyperledger/aries-rfcs/blob/master/features/0092-transport-return-route/README.md
*/
var TransportDecorator = class {
	constructor(partial) {
		this.returnRoute = partial?.returnRoute;
		this.returnRouteThread = partial?.returnRouteThread;
	}
};
require_decorate.__decorate([
	(0, import_cjs.Expose)({ name: "return_route" }),
	(0, import_cjs$1.IsEnum)(ReturnRouteTypes),
	(0, import_cjs$1.IsOptional)(),
	require_decorateMetadata.__decorateMetadata("design:type", typeof (_ref = typeof ReturnRouteTypes !== "undefined" && ReturnRouteTypes) === "function" ? _ref : Object)
], TransportDecorator.prototype, "returnRoute", void 0);
require_decorate.__decorate([
	(0, import_cjs.Expose)({ name: "return_route_thread" }),
	(0, import_cjs$1.ValidateIf)((o) => o.returnRoute === ReturnRouteTypes.thread),
	(0, import_cjs$1.Matches)(require_BaseDidCommMessage.MessageIdRegExp),
	require_decorateMetadata.__decorateMetadata("design:type", String)
], TransportDecorator.prototype, "returnRouteThread", void 0);

//#endregion
exports.ReturnRouteTypes = ReturnRouteTypes;
exports.TransportDecorator = TransportDecorator;