import { KmsCreateKeyType, KmsCreateKeyTypeEc, KmsCreateKeyTypeOct, KmsCreateKeyTypeOkp, KmsCreateKeyTypeRsa } from "../options/KmsCreateKeyOptions.mjs";
import "../options/index.mjs";
import { KmsJwkPrivateEc, KmsJwkPublicEc } from "./kty/ec/ecJwk.mjs";
import { KmsJwkPrivateOct, KmsJwkPublicOct } from "./kty/oct/octJwk.mjs";
import { KmsJwkPrivateOkp, KmsJwkPublicOkp } from "./kty/okp/okpJwk.mjs";
import { KmsJwkPrivateRsa, KmsJwkPublicRsa } from "./kty/rsa/rsaJwk.mjs";
import { z as z$1 } from "zod";
//#region src/modules/kms/jwk/knownJwk.d.ts
export declare const zKmsJwkPublicAsymmetric: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
  kty: z$1.ZodLiteral<"EC">;
  crv: z$1.ZodEnum<{
    "P-256": "P-256";
    "P-384": "P-384";
    "P-521": "P-521";
    secp256k1: "secp256k1";
  }>;
  x: z$1.ZodString;
  y: z$1.ZodString;
  d: z$1.ZodOptional<z$1.ZodUndefined>;
  kid: z$1.ZodOptional<z$1.ZodString>;
  alg: z$1.ZodOptional<z$1.ZodString>;
  key_ops: z$1.ZodOptional<z$1.ZodArray<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sign">, z$1.ZodLiteral<"verify">, z$1.ZodLiteral<"encrypt">, z$1.ZodLiteral<"decrypt">, z$1.ZodLiteral<"wrapKey">, z$1.ZodLiteral<"unwrapKey">, z$1.ZodLiteral<"deriveKey">, z$1.ZodLiteral<"deriveBits">]>, z$1.ZodString]>>>;
  use: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sig">, z$1.ZodLiteral<"enc">]>, z$1.ZodString]>>;
  ext: z$1.ZodOptional<z$1.ZodBoolean>;
  x5c: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
  x5t: z$1.ZodOptional<z$1.ZodString>;
  'x5t#S256': z$1.ZodOptional<z$1.ZodString>;
  x5u: z$1.ZodOptional<z$1.ZodString>;
}, z$1.core.$strip>, z$1.ZodObject<{
  kty: z$1.ZodLiteral<"RSA">;
  n: z$1.ZodString;
  e: z$1.ZodString;
  d: z$1.ZodOptional<z$1.ZodUndefined>;
  p: z$1.ZodOptional<z$1.ZodUndefined>;
  q: z$1.ZodOptional<z$1.ZodUndefined>;
  dp: z$1.ZodOptional<z$1.ZodUndefined>;
  dq: z$1.ZodOptional<z$1.ZodUndefined>;
  qi: z$1.ZodOptional<z$1.ZodUndefined>;
  oth: z$1.ZodOptional<z$1.ZodUndefined>;
  kid: z$1.ZodOptional<z$1.ZodString>;
  alg: z$1.ZodOptional<z$1.ZodString>;
  key_ops: z$1.ZodOptional<z$1.ZodArray<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sign">, z$1.ZodLiteral<"verify">, z$1.ZodLiteral<"encrypt">, z$1.ZodLiteral<"decrypt">, z$1.ZodLiteral<"wrapKey">, z$1.ZodLiteral<"unwrapKey">, z$1.ZodLiteral<"deriveKey">, z$1.ZodLiteral<"deriveBits">]>, z$1.ZodString]>>>;
  use: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sig">, z$1.ZodLiteral<"enc">]>, z$1.ZodString]>>;
  ext: z$1.ZodOptional<z$1.ZodBoolean>;
  x5c: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
  x5t: z$1.ZodOptional<z$1.ZodString>;
  'x5t#S256': z$1.ZodOptional<z$1.ZodString>;
  x5u: z$1.ZodOptional<z$1.ZodString>;
}, z$1.core.$strip>, z$1.ZodObject<{
  kty: z$1.ZodLiteral<"OKP">;
  crv: z$1.ZodEnum<{
    Ed25519: "Ed25519";
    X25519: "X25519";
  }>;
  x: z$1.ZodString;
  d: z$1.ZodOptional<z$1.ZodString>;
  kid: z$1.ZodOptional<z$1.ZodString>;
  alg: z$1.ZodOptional<z$1.ZodString>;
  key_ops: z$1.ZodOptional<z$1.ZodArray<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sign">, z$1.ZodLiteral<"verify">, z$1.ZodLiteral<"encrypt">, z$1.ZodLiteral<"decrypt">, z$1.ZodLiteral<"wrapKey">, z$1.ZodLiteral<"unwrapKey">, z$1.ZodLiteral<"deriveKey">, z$1.ZodLiteral<"deriveBits">]>, z$1.ZodString]>>>;
  use: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sig">, z$1.ZodLiteral<"enc">]>, z$1.ZodString]>>;
  ext: z$1.ZodOptional<z$1.ZodBoolean>;
  x5c: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
  x5t: z$1.ZodOptional<z$1.ZodString>;
  'x5t#S256': z$1.ZodOptional<z$1.ZodString>;
  x5u: z$1.ZodOptional<z$1.ZodString>;
}, z$1.core.$strip>], "kty">;
export type KmsJwkPublicAsymmetric = z$1.output<typeof zKmsJwkPublicAsymmetric>;
export declare function isJwkAsymmetric(jwk: KmsJwkPublic | KmsJwkPrivate): jwk is KmsJwkPrivateAsymmetric | KmsJwkPublicAsymmetric;
export declare function assertJwkAsymmetric(jwk: KmsJwkPublic | KmsJwkPrivate, keyId?: string): asserts jwk is KmsJwkPublicAsymmetric | KmsJwkPrivateAsymmetric;
export declare const zKmsJwkPublic: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
  kty: z$1.ZodLiteral<"EC">;
  crv: z$1.ZodEnum<{
    "P-256": "P-256";
    "P-384": "P-384";
    "P-521": "P-521";
    secp256k1: "secp256k1";
  }>;
  x: z$1.ZodString;
  y: z$1.ZodString;
  d: z$1.ZodOptional<z$1.ZodUndefined>;
  kid: z$1.ZodOptional<z$1.ZodString>;
  alg: z$1.ZodOptional<z$1.ZodString>;
  key_ops: z$1.ZodOptional<z$1.ZodArray<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sign">, z$1.ZodLiteral<"verify">, z$1.ZodLiteral<"encrypt">, z$1.ZodLiteral<"decrypt">, z$1.ZodLiteral<"wrapKey">, z$1.ZodLiteral<"unwrapKey">, z$1.ZodLiteral<"deriveKey">, z$1.ZodLiteral<"deriveBits">]>, z$1.ZodString]>>>;
  use: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sig">, z$1.ZodLiteral<"enc">]>, z$1.ZodString]>>;
  ext: z$1.ZodOptional<z$1.ZodBoolean>;
  x5c: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
  x5t: z$1.ZodOptional<z$1.ZodString>;
  'x5t#S256': z$1.ZodOptional<z$1.ZodString>;
  x5u: z$1.ZodOptional<z$1.ZodString>;
}, z$1.core.$strip>, z$1.ZodObject<{
  kty: z$1.ZodLiteral<"RSA">;
  n: z$1.ZodString;
  e: z$1.ZodString;
  d: z$1.ZodOptional<z$1.ZodUndefined>;
  p: z$1.ZodOptional<z$1.ZodUndefined>;
  q: z$1.ZodOptional<z$1.ZodUndefined>;
  dp: z$1.ZodOptional<z$1.ZodUndefined>;
  dq: z$1.ZodOptional<z$1.ZodUndefined>;
  qi: z$1.ZodOptional<z$1.ZodUndefined>;
  oth: z$1.ZodOptional<z$1.ZodUndefined>;
  kid: z$1.ZodOptional<z$1.ZodString>;
  alg: z$1.ZodOptional<z$1.ZodString>;
  key_ops: z$1.ZodOptional<z$1.ZodArray<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sign">, z$1.ZodLiteral<"verify">, z$1.ZodLiteral<"encrypt">, z$1.ZodLiteral<"decrypt">, z$1.ZodLiteral<"wrapKey">, z$1.ZodLiteral<"unwrapKey">, z$1.ZodLiteral<"deriveKey">, z$1.ZodLiteral<"deriveBits">]>, z$1.ZodString]>>>;
  use: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sig">, z$1.ZodLiteral<"enc">]>, z$1.ZodString]>>;
  ext: z$1.ZodOptional<z$1.ZodBoolean>;
  x5c: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
  x5t: z$1.ZodOptional<z$1.ZodString>;
  'x5t#S256': z$1.ZodOptional<z$1.ZodString>;
  x5u: z$1.ZodOptional<z$1.ZodString>;
}, z$1.core.$strip>, z$1.ZodObject<{
  kty: z$1.ZodLiteral<"oct">;
  k: z$1.ZodOptional<z$1.ZodUndefined>;
  kid: z$1.ZodOptional<z$1.ZodString>;
  alg: z$1.ZodOptional<z$1.ZodString>;
  key_ops: z$1.ZodOptional<z$1.ZodArray<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sign">, z$1.ZodLiteral<"verify">, z$1.ZodLiteral<"encrypt">, z$1.ZodLiteral<"decrypt">, z$1.ZodLiteral<"wrapKey">, z$1.ZodLiteral<"unwrapKey">, z$1.ZodLiteral<"deriveKey">, z$1.ZodLiteral<"deriveBits">]>, z$1.ZodString]>>>;
  use: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sig">, z$1.ZodLiteral<"enc">]>, z$1.ZodString]>>;
  ext: z$1.ZodOptional<z$1.ZodBoolean>;
  x5c: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
  x5t: z$1.ZodOptional<z$1.ZodString>;
  'x5t#S256': z$1.ZodOptional<z$1.ZodString>;
  x5u: z$1.ZodOptional<z$1.ZodString>;
}, z$1.core.$strip>, z$1.ZodObject<{
  kty: z$1.ZodLiteral<"OKP">;
  crv: z$1.ZodEnum<{
    Ed25519: "Ed25519";
    X25519: "X25519";
  }>;
  x: z$1.ZodString;
  d: z$1.ZodOptional<z$1.ZodString>;
  kid: z$1.ZodOptional<z$1.ZodString>;
  alg: z$1.ZodOptional<z$1.ZodString>;
  key_ops: z$1.ZodOptional<z$1.ZodArray<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sign">, z$1.ZodLiteral<"verify">, z$1.ZodLiteral<"encrypt">, z$1.ZodLiteral<"decrypt">, z$1.ZodLiteral<"wrapKey">, z$1.ZodLiteral<"unwrapKey">, z$1.ZodLiteral<"deriveKey">, z$1.ZodLiteral<"deriveBits">]>, z$1.ZodString]>>>;
  use: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sig">, z$1.ZodLiteral<"enc">]>, z$1.ZodString]>>;
  ext: z$1.ZodOptional<z$1.ZodBoolean>;
  x5c: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
  x5t: z$1.ZodOptional<z$1.ZodString>;
  'x5t#S256': z$1.ZodOptional<z$1.ZodString>;
  x5u: z$1.ZodOptional<z$1.ZodString>;
}, z$1.core.$strip>], "kty">;
export type KmsJwkPublic = z$1.output<typeof zKmsJwkPublic>;
export declare const zKmsJwkPrivate: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
  d: z$1.ZodString;
  kty: z$1.ZodLiteral<"EC">;
  crv: z$1.ZodEnum<{
    "P-256": "P-256";
    "P-384": "P-384";
    "P-521": "P-521";
    secp256k1: "secp256k1";
  }>;
  x: z$1.ZodString;
  y: z$1.ZodString;
  kid: z$1.ZodOptional<z$1.ZodString>;
  alg: z$1.ZodOptional<z$1.ZodString>;
  key_ops: z$1.ZodOptional<z$1.ZodArray<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sign">, z$1.ZodLiteral<"verify">, z$1.ZodLiteral<"encrypt">, z$1.ZodLiteral<"decrypt">, z$1.ZodLiteral<"wrapKey">, z$1.ZodLiteral<"unwrapKey">, z$1.ZodLiteral<"deriveKey">, z$1.ZodLiteral<"deriveBits">]>, z$1.ZodString]>>>;
  use: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sig">, z$1.ZodLiteral<"enc">]>, z$1.ZodString]>>;
  ext: z$1.ZodOptional<z$1.ZodBoolean>;
  x5c: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
  x5t: z$1.ZodOptional<z$1.ZodString>;
  'x5t#S256': z$1.ZodOptional<z$1.ZodString>;
  x5u: z$1.ZodOptional<z$1.ZodString>;
}, z$1.core.$strip>, z$1.ZodObject<{
  d: z$1.ZodString;
  p: z$1.ZodString;
  q: z$1.ZodString;
  dp: z$1.ZodString;
  dq: z$1.ZodString;
  qi: z$1.ZodString;
  oth: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
    d: z$1.ZodOptional<z$1.ZodString>;
    r: z$1.ZodOptional<z$1.ZodString>;
    t: z$1.ZodOptional<z$1.ZodString>;
  }, z$1.core.$loose>>>;
  kty: z$1.ZodLiteral<"RSA">;
  n: z$1.ZodString;
  e: z$1.ZodString;
  kid: z$1.ZodOptional<z$1.ZodString>;
  alg: z$1.ZodOptional<z$1.ZodString>;
  key_ops: z$1.ZodOptional<z$1.ZodArray<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sign">, z$1.ZodLiteral<"verify">, z$1.ZodLiteral<"encrypt">, z$1.ZodLiteral<"decrypt">, z$1.ZodLiteral<"wrapKey">, z$1.ZodLiteral<"unwrapKey">, z$1.ZodLiteral<"deriveKey">, z$1.ZodLiteral<"deriveBits">]>, z$1.ZodString]>>>;
  use: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sig">, z$1.ZodLiteral<"enc">]>, z$1.ZodString]>>;
  ext: z$1.ZodOptional<z$1.ZodBoolean>;
  x5c: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
  x5t: z$1.ZodOptional<z$1.ZodString>;
  'x5t#S256': z$1.ZodOptional<z$1.ZodString>;
  x5u: z$1.ZodOptional<z$1.ZodString>;
}, z$1.core.$strip>, z$1.ZodObject<{
  k: z$1.ZodString;
  kty: z$1.ZodLiteral<"oct">;
  kid: z$1.ZodOptional<z$1.ZodString>;
  alg: z$1.ZodOptional<z$1.ZodString>;
  key_ops: z$1.ZodOptional<z$1.ZodArray<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sign">, z$1.ZodLiteral<"verify">, z$1.ZodLiteral<"encrypt">, z$1.ZodLiteral<"decrypt">, z$1.ZodLiteral<"wrapKey">, z$1.ZodLiteral<"unwrapKey">, z$1.ZodLiteral<"deriveKey">, z$1.ZodLiteral<"deriveBits">]>, z$1.ZodString]>>>;
  use: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sig">, z$1.ZodLiteral<"enc">]>, z$1.ZodString]>>;
  ext: z$1.ZodOptional<z$1.ZodBoolean>;
  x5c: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
  x5t: z$1.ZodOptional<z$1.ZodString>;
  'x5t#S256': z$1.ZodOptional<z$1.ZodString>;
  x5u: z$1.ZodOptional<z$1.ZodString>;
}, z$1.core.$strip>, z$1.ZodObject<{
  d: z$1.ZodString;
  kty: z$1.ZodLiteral<"OKP">;
  crv: z$1.ZodEnum<{
    Ed25519: "Ed25519";
    X25519: "X25519";
  }>;
  x: z$1.ZodString;
  kid: z$1.ZodOptional<z$1.ZodString>;
  alg: z$1.ZodOptional<z$1.ZodString>;
  key_ops: z$1.ZodOptional<z$1.ZodArray<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sign">, z$1.ZodLiteral<"verify">, z$1.ZodLiteral<"encrypt">, z$1.ZodLiteral<"decrypt">, z$1.ZodLiteral<"wrapKey">, z$1.ZodLiteral<"unwrapKey">, z$1.ZodLiteral<"deriveKey">, z$1.ZodLiteral<"deriveBits">]>, z$1.ZodString]>>>;
  use: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sig">, z$1.ZodLiteral<"enc">]>, z$1.ZodString]>>;
  ext: z$1.ZodOptional<z$1.ZodBoolean>;
  x5c: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
  x5t: z$1.ZodOptional<z$1.ZodString>;
  'x5t#S256': z$1.ZodOptional<z$1.ZodString>;
  x5u: z$1.ZodOptional<z$1.ZodString>;
}, z$1.core.$strip>], "kty">;
export type KmsJwkPrivate = z$1.output<typeof zKmsJwkPrivate>;
export declare const zKmsJwkPrivateAsymmetric: z$1.ZodDiscriminatedUnion<[z$1.ZodObject<{
  d: z$1.ZodString;
  kty: z$1.ZodLiteral<"EC">;
  crv: z$1.ZodEnum<{
    "P-256": "P-256";
    "P-384": "P-384";
    "P-521": "P-521";
    secp256k1: "secp256k1";
  }>;
  x: z$1.ZodString;
  y: z$1.ZodString;
  kid: z$1.ZodOptional<z$1.ZodString>;
  alg: z$1.ZodOptional<z$1.ZodString>;
  key_ops: z$1.ZodOptional<z$1.ZodArray<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sign">, z$1.ZodLiteral<"verify">, z$1.ZodLiteral<"encrypt">, z$1.ZodLiteral<"decrypt">, z$1.ZodLiteral<"wrapKey">, z$1.ZodLiteral<"unwrapKey">, z$1.ZodLiteral<"deriveKey">, z$1.ZodLiteral<"deriveBits">]>, z$1.ZodString]>>>;
  use: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sig">, z$1.ZodLiteral<"enc">]>, z$1.ZodString]>>;
  ext: z$1.ZodOptional<z$1.ZodBoolean>;
  x5c: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
  x5t: z$1.ZodOptional<z$1.ZodString>;
  'x5t#S256': z$1.ZodOptional<z$1.ZodString>;
  x5u: z$1.ZodOptional<z$1.ZodString>;
}, z$1.core.$strip>, z$1.ZodObject<{
  d: z$1.ZodString;
  p: z$1.ZodString;
  q: z$1.ZodString;
  dp: z$1.ZodString;
  dq: z$1.ZodString;
  qi: z$1.ZodString;
  oth: z$1.ZodOptional<z$1.ZodArray<z$1.ZodObject<{
    d: z$1.ZodOptional<z$1.ZodString>;
    r: z$1.ZodOptional<z$1.ZodString>;
    t: z$1.ZodOptional<z$1.ZodString>;
  }, z$1.core.$loose>>>;
  kty: z$1.ZodLiteral<"RSA">;
  n: z$1.ZodString;
  e: z$1.ZodString;
  kid: z$1.ZodOptional<z$1.ZodString>;
  alg: z$1.ZodOptional<z$1.ZodString>;
  key_ops: z$1.ZodOptional<z$1.ZodArray<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sign">, z$1.ZodLiteral<"verify">, z$1.ZodLiteral<"encrypt">, z$1.ZodLiteral<"decrypt">, z$1.ZodLiteral<"wrapKey">, z$1.ZodLiteral<"unwrapKey">, z$1.ZodLiteral<"deriveKey">, z$1.ZodLiteral<"deriveBits">]>, z$1.ZodString]>>>;
  use: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sig">, z$1.ZodLiteral<"enc">]>, z$1.ZodString]>>;
  ext: z$1.ZodOptional<z$1.ZodBoolean>;
  x5c: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
  x5t: z$1.ZodOptional<z$1.ZodString>;
  'x5t#S256': z$1.ZodOptional<z$1.ZodString>;
  x5u: z$1.ZodOptional<z$1.ZodString>;
}, z$1.core.$strip>, z$1.ZodObject<{
  d: z$1.ZodString;
  kty: z$1.ZodLiteral<"OKP">;
  crv: z$1.ZodEnum<{
    Ed25519: "Ed25519";
    X25519: "X25519";
  }>;
  x: z$1.ZodString;
  kid: z$1.ZodOptional<z$1.ZodString>;
  alg: z$1.ZodOptional<z$1.ZodString>;
  key_ops: z$1.ZodOptional<z$1.ZodArray<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sign">, z$1.ZodLiteral<"verify">, z$1.ZodLiteral<"encrypt">, z$1.ZodLiteral<"decrypt">, z$1.ZodLiteral<"wrapKey">, z$1.ZodLiteral<"unwrapKey">, z$1.ZodLiteral<"deriveKey">, z$1.ZodLiteral<"deriveBits">]>, z$1.ZodString]>>>;
  use: z$1.ZodOptional<z$1.ZodUnion<readonly [z$1.ZodUnion<readonly [z$1.ZodLiteral<"sig">, z$1.ZodLiteral<"enc">]>, z$1.ZodString]>>;
  ext: z$1.ZodOptional<z$1.ZodBoolean>;
  x5c: z$1.ZodOptional<z$1.ZodArray<z$1.ZodString>>;
  x5t: z$1.ZodOptional<z$1.ZodString>;
  'x5t#S256': z$1.ZodOptional<z$1.ZodString>;
  x5u: z$1.ZodOptional<z$1.ZodString>;
}, z$1.core.$strip>], "kty">;
export type KmsJwkPrivateAsymmetric = z$1.output<typeof zKmsJwkPrivateAsymmetric>;
export declare function publicJwkFromPrivateJwk(privateJwk: KmsJwkPrivate | KmsJwkPublic): KmsJwkPublic;
export type KmsJwkPrivateFromKmsJwkPublic<Type extends KmsCreateKeyType> = Type extends KmsCreateKeyTypeRsa ? KmsJwkPrivateRsa : Type extends KmsCreateKeyTypeOct ? KmsJwkPrivateOct : Type extends KmsCreateKeyTypeOkp ? KmsJwkPrivateOkp & {
  crv: Type['crv'];
} : Type extends KmsCreateKeyTypeEc ? KmsJwkPrivateEc & {
  crv: Type['crv'];
} : KmsJwkPrivate;
export type KmsJwkPublicFromKmsJwkPrivate<Jwk extends KmsJwkPrivate> = Jwk extends KmsJwkPrivateRsa ? KmsJwkPublicRsa : Jwk extends KmsJwkPrivateOct ? KmsJwkPublicOct : Jwk extends KmsJwkPrivateOkp ? KmsJwkPublicOkp & {
  crv: Jwk['crv'];
} : Jwk extends KmsJwkPrivateEc ? KmsJwkPublicEc & {
  crv: Jwk['crv'];
} : KmsJwkPublic;
export type KmsJwkPublicFromCreateType<Type extends KmsCreateKeyType> = Type extends KmsCreateKeyTypeRsa ? KmsJwkPublicRsa : Type extends KmsCreateKeyTypeOct ? KmsJwkPublicOct : Type extends KmsCreateKeyTypeOkp ? KmsJwkPublicOkp & {
  crv: Type['crv'];
} : Type extends KmsCreateKeyTypeEc ? KmsJwkPublicEc & {
  crv: Type['crv'];
} : KmsJwkPublic;
//#endregion
//# sourceMappingURL=knownJwk.d.mts.map