const require_constants = require('./constants.js');
const require_InMemoryQueueTransportRepository = require('./transport/queue/InMemoryQueueTransportRepository.js');
const require_types = require('./types.js');
require('./transport/index.js');

//#region ../didcomm/src/DidCommModuleConfig.ts
var DidCommModuleConfig = class {
	constructor(options) {
		this.options = options ?? {};
		this._endpoints = options?.endpoints;
		this._queueTransportRepository = options?.queueTransportRepository ?? new require_InMemoryQueueTransportRepository.InMemoryQueueTransportRepository();
		this.enabledModules = {
			connections: true,
			oob: true,
			discovery: true,
			proofs: this.options.proofs !== false,
			credentials: this.options.credentials !== false,
			messagePickup: this.options.messagePickup !== false,
			mediator: this.options.mediator !== false,
			mediationRecipient: this.options.mediationRecipient !== false,
			basicMessages: this.options.basicMessages !== false
		};
	}
	get endpoints() {
		if (!this._endpoints || this._endpoints.length === 0) return [require_constants.DID_COMM_TRANSPORT_QUEUE];
		return this._endpoints;
	}
	set endpoints(endpoints) {
		this._endpoints = endpoints;
	}
	get useDidSovPrefixWhereAllowed() {
		return this.options.useDidSovPrefixWhereAllowed ?? false;
	}
	get processDidCommMessagesConcurrently() {
		return this.options.processDidCommMessagesConcurrently ?? false;
	}
	get didCommMimeType() {
		return this.options.didCommMimeType ?? require_types.DidCommMimeType.V1;
	}
	/**
	* Encode keys in did:key format instead of 'naked' keys, as stated in Aries RFC 0360.
	*
	* This setting will not be taken into account if the other party has previously used naked keys
	* in a given protocol (i.e. it does not support Aries RFC 0360).
	*/
	get useDidKeyInProtocols() {
		return this.options.useDidKeyInProtocols ?? true;
	}
	/**
	* Allows to specify a custom queue transport queue. It defaults to an in-memory queue
	*
	*/
	get queueTransportRepository() {
		return this._queueTransportRepository;
	}
};

//#endregion
exports.DidCommModuleConfig = DidCommModuleConfig;