import { P256PublicJwk } from "../../../kms/jwk/kty/ec/P256PublicJwk.js";
import { P384PublicJwk } from "../../../kms/jwk/kty/ec/P384PublicJwk.js";
import { P521PublicJwk } from "../../../kms/jwk/kty/ec/P521PublicJwk.js";
import { Secp256k1PublicJwk } from "../../../kms/jwk/kty/ec/Secp256k1PublicJwk.js";
import { Ed25519PublicJwk } from "../../../kms/jwk/kty/okp/Ed25519PublicJwk.js";
import { X25519PublicJwk } from "../../../kms/jwk/kty/okp/X25519PublicJwk.js";
import { RsaPublicJwk } from "../../../kms/jwk/kty/rsa/RsaPublicJwk.js";
import { PublicJwk } from "../../../kms/jwk/PublicJwk.js";
import { VerificationMethod } from "./VerificationMethod.js";

//#region src/modules/dids/domain/verificationMethod/Ed25519VerificationKey2020.d.ts
declare const VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020 = "Ed25519VerificationKey2020";
type Ed25519VerificationKey2020 = VerificationMethod & {
  type: typeof VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020;
};
/**
 * Get a Ed25519VerificationKey2020 verification method.
 */
declare function getEd25519VerificationKey2020({
  publicJwk,
  id,
  controller
}: {
  id: string;
  publicJwk: PublicJwk<Ed25519PublicJwk>;
  controller: string;
}): VerificationMethod;
/**
 * Check whether a verification method is a Ed25519VerificationKey2020 verification method.
 */
declare function isEd25519VerificationKey2020(verificationMethod: VerificationMethod): verificationMethod is Ed25519VerificationKey2020;
/**
 * Get a key from a Ed25519VerificationKey2020 verification method.
 */
declare function getPublicJwkFromEd25519VerificationKey2020(verificationMethod: Ed25519VerificationKey2020): PublicJwk<Ed25519PublicJwk | P256PublicJwk | P384PublicJwk | P521PublicJwk | RsaPublicJwk | Secp256k1PublicJwk | X25519PublicJwk>;
//#endregion
export { VERIFICATION_METHOD_TYPE_ED25519_VERIFICATION_KEY_2020, getEd25519VerificationKey2020, getPublicJwkFromEd25519VerificationKey2020, isEd25519VerificationKey2020 };
//# sourceMappingURL=Ed25519VerificationKey2020.d.ts.map