

import { Ed25519PublicJwk } from "../kms/jwk/kty/okp/Ed25519PublicJwk.mjs";
import "../kms/index.mjs";
import { VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2018 } from "../dids/domain/verificationMethod/Ed25519VerificationKey2018.mjs";
import { VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020 } from "../dids/domain/verificationMethod/Ed25519VerificationKey2020.mjs";
import "../dids/index.mjs";
import { SignatureSuiteRegistry, SignatureSuiteToken } from "./data-integrity/SignatureSuiteRegistry.mjs";
import { Ed25519Signature2018 } from "./data-integrity/signature-suites/ed25519/Ed25519Signature2018.mjs";
import { Ed25519Signature2020 } from "./data-integrity/signature-suites/ed25519/Ed25519Signature2020.mjs";
import "./data-integrity/signature-suites/index.mjs";
import { W3cCredentialsModuleConfig } from "./W3cCredentialsModuleConfig.mjs";
import { W3cJsonLdCredentialService } from "./data-integrity/W3cJsonLdCredentialService.mjs";
import { W3cJwtCredentialService } from "./jwt-vc/W3cJwtCredentialService.mjs";
import "./jwt-vc/index.mjs";
import { W3cCredentialRepository } from "./repository/W3cCredentialRepository.mjs";
import { W3cCredentialService } from "./W3cCredentialService.mjs";
import { W3cCredentialsApi } from "./W3cCredentialsApi.mjs";

//#region src/modules/vc/W3cCredentialsModule.ts
/**
* @public
*/
var W3cCredentialsModule = class {
	constructor(config) {
		this.api = W3cCredentialsApi;
		this.config = new W3cCredentialsModuleConfig(config);
	}
	register(dependencyManager) {
		dependencyManager.registerSingleton(W3cCredentialService);
		dependencyManager.registerSingleton(W3cJwtCredentialService);
		dependencyManager.registerSingleton(W3cJsonLdCredentialService);
		dependencyManager.registerSingleton(W3cCredentialRepository);
		dependencyManager.registerSingleton(SignatureSuiteRegistry);
		dependencyManager.registerInstance(W3cCredentialsModuleConfig, this.config);
		dependencyManager.registerInstance(SignatureSuiteToken, {
			suiteClass: Ed25519Signature2018,
			proofType: "Ed25519Signature2018",
			verificationMethodTypes: [VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2018, VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020],
			supportedPublicJwkTypes: [Ed25519PublicJwk]
		});
		dependencyManager.registerInstance(SignatureSuiteToken, {
			suiteClass: Ed25519Signature2020,
			proofType: "Ed25519Signature2020",
			verificationMethodTypes: [VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020],
			supportedPublicJwkTypes: [Ed25519PublicJwk]
		});
	}
};

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