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');
let __credo_ts_core = require("@credo-ts/core");
__credo_ts_core = require_rolldown_runtime.__toESM(__credo_ts_core);

//#region ../didcomm/src/modules/credentials/formats/dataIntegrity/dataIntegrityExchange.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, _ref4;
const SUPPORTED_W3C_VC_DATA_MODEL_VERSIONS = ["1.1", "2.0"];
var AnonCredsLinkSecretBindingMethod = class {
	constructor(options) {
		if (options) {
			this.credentialDefinitionId = options.credentialDefinitionId;
			this.nonce = options.nonce;
			this.keyCorrectnessProof = options.keyCorrectnessProof;
		}
	}
};
require_decorate.__decorate([
	(0, import_cjs$1.IsString)(),
	(0, import_cjs.Expose)({ name: "cred_def_id" }),
	require_decorateMetadata.__decorateMetadata("design:type", String)
], AnonCredsLinkSecretBindingMethod.prototype, "credentialDefinitionId", void 0);
require_decorate.__decorate([(0, import_cjs$1.IsString)(), require_decorateMetadata.__decorateMetadata("design:type", String)], AnonCredsLinkSecretBindingMethod.prototype, "nonce", void 0);
require_decorate.__decorate([(0, import_cjs.Expose)({ name: "key_correctness_proof" }), require_decorateMetadata.__decorateMetadata("design:type", typeof (_ref = typeof Record !== "undefined" && Record) === "function" ? _ref : Object)], AnonCredsLinkSecretBindingMethod.prototype, "keyCorrectnessProof", void 0);
var DidCommSignedAttachmentBindingMethod = class {
	constructor(options) {
		if (options) {
			this.algsSupported = options.algSupported;
			this.didMethodsSupported = options.didMethodsSupported;
			this.nonce = options.nonce;
		}
	}
};
require_decorate.__decorate([
	(0, import_cjs$1.IsString)({ each: true }),
	(0, import_cjs.Expose)({ name: "algs_supported" }),
	require_decorateMetadata.__decorateMetadata("design:type", Array)
], DidCommSignedAttachmentBindingMethod.prototype, "algsSupported", void 0);
require_decorate.__decorate([
	(0, import_cjs$1.IsString)({ each: true }),
	(0, import_cjs.Expose)({ name: "did_methods_supported" }),
	require_decorateMetadata.__decorateMetadata("design:type", Array)
], DidCommSignedAttachmentBindingMethod.prototype, "didMethodsSupported", void 0);
require_decorate.__decorate([(0, import_cjs$1.IsString)(), require_decorateMetadata.__decorateMetadata("design:type", String)], DidCommSignedAttachmentBindingMethod.prototype, "nonce", void 0);
var DataIntegrityBindingMethods = class {
	constructor(options) {
		if (options) {
			this.anoncredsLinkSecret = options.anonCredsLinkSecret;
			this.didcommSignedAttachment = options.didcommSignedAttachment;
		}
	}
};
require_decorate.__decorate([
	(0, import_cjs$1.IsOptional)(),
	(0, import_cjs$1.ValidateNested)(),
	(0, import_cjs.Type)(() => AnonCredsLinkSecretBindingMethod),
	(0, import_cjs.Expose)({ name: "anoncreds_link_secret" }),
	require_decorateMetadata.__decorateMetadata("design:type", typeof (_ref2 = typeof AnonCredsLinkSecretBindingMethod !== "undefined" && AnonCredsLinkSecretBindingMethod) === "function" ? _ref2 : Object)
], DataIntegrityBindingMethods.prototype, "anoncredsLinkSecret", void 0);
require_decorate.__decorate([
	(0, import_cjs$1.IsOptional)(),
	(0, import_cjs$1.ValidateNested)(),
	(0, import_cjs.Type)(() => DidCommSignedAttachmentBindingMethod),
	(0, import_cjs.Expose)({ name: "didcomm_signed_attachment" }),
	require_decorateMetadata.__decorateMetadata("design:type", typeof (_ref3 = typeof DidCommSignedAttachmentBindingMethod !== "undefined" && DidCommSignedAttachmentBindingMethod) === "function" ? _ref3 : Object)
], DataIntegrityBindingMethods.prototype, "didcommSignedAttachment", void 0);
var DataIntegrityCredentialOffer = class {
	constructor(options) {
		if (options) {
			this.credential = options.credential instanceof __credo_ts_core.W3cCredential ? __credo_ts_core.JsonTransformer.toJSON(options.credential) : options.credential;
			this.bindingRequired = options.bindingRequired;
			this.bindingMethod = options.bindingMethod;
			this.dataModelVersionsSupported = options.dataModelVersionsSupported;
		}
	}
};
require_decorate.__decorate([
	(0, import_cjs$1.ArrayNotEmpty)(),
	(0, import_cjs$1.IsEnum)(SUPPORTED_W3C_VC_DATA_MODEL_VERSIONS, { each: true }),
	(0, import_cjs.Expose)({ name: "data_model_versions_supported" }),
	require_decorateMetadata.__decorateMetadata("design:type", Array)
], DataIntegrityCredentialOffer.prototype, "dataModelVersionsSupported", void 0);
require_decorate.__decorate([
	(0, import_cjs$1.IsOptional)(),
	(0, import_cjs$1.IsBoolean)(),
	(0, import_cjs.Expose)({ name: "binding_required" }),
	require_decorateMetadata.__decorateMetadata("design:type", Boolean)
], DataIntegrityCredentialOffer.prototype, "bindingRequired", void 0);
require_decorate.__decorate([
	(0, import_cjs$1.IsOptional)(),
	(0, import_cjs$1.ValidateNested)(),
	(0, import_cjs.Type)(() => DataIntegrityBindingMethods),
	(0, import_cjs.Expose)({ name: "binding_method" }),
	require_decorateMetadata.__decorateMetadata("design:type", typeof (_ref4 = typeof DataIntegrityBindingMethods !== "undefined" && DataIntegrityBindingMethods) === "function" ? _ref4 : Object)
], DataIntegrityCredentialOffer.prototype, "bindingMethod", void 0);
require_decorate.__decorate([(0, import_cjs.Expose)({ name: "credential" }), require_decorateMetadata.__decorateMetadata("design:type", Object)], DataIntegrityCredentialOffer.prototype, "credential", void 0);

//#endregion
exports.AnonCredsLinkSecretBindingMethod = AnonCredsLinkSecretBindingMethod;
exports.DataIntegrityBindingMethods = DataIntegrityBindingMethods;
exports.DataIntegrityCredentialOffer = DataIntegrityCredentialOffer;
exports.DidCommSignedAttachmentBindingMethod = DidCommSignedAttachmentBindingMethod;