import { KnownJwaKeyAgreementAlgorithm } from "../jwa.mjs";
import { KmsJwkPublicOct } from "../kty/oct/octJwk.mjs";
import { KmsJwkPrivate, KmsJwkPublic } from "../knownJwk.mjs";

//#region src/modules/kms/jwk/alg/keyDerivation.d.ts
declare function supportedKeyDerivationAlgsForKey(jwk: KmsJwkPrivate | Exclude<KmsJwkPublic, KmsJwkPublicOct>): KnownJwaKeyAgreementAlgorithm[];
/**
 * Get the allowed key derivation algs for a key. If takes all the known supported
 * algs and will filter these based on the optional `alg` key in the JWK.
 *
 * This does not handle the intended key `use` and `key_ops`.
 */
declare function allowedKeyDerivationAlgsForKey(jwk: KmsJwkPrivate | Exclude<KmsJwkPublic, KmsJwkPublicOct>): KnownJwaKeyAgreementAlgorithm[];
declare function assertAllowedKeyDerivationAlgForKey(jwk: KmsJwkPrivate | Exclude<KmsJwkPublic, KmsJwkPublicOct>, algorithm: KnownJwaKeyAgreementAlgorithm): void;
//#endregion
export { allowedKeyDerivationAlgsForKey, assertAllowedKeyDerivationAlgForKey, supportedKeyDerivationAlgsForKey };
//# sourceMappingURL=keyDerivation.d.mts.map