import { AnyUint8Array } from "../../../types.js";
import { z } from "zod";

//#region src/modules/kms/options/KmsKeyAgreementEncryptOptions.d.ts
declare const zKmsJwkPublicEcdh: z.ZodUnion<readonly [z.ZodObject<{
  kty: z.ZodLiteral<"OKP">;
  x: z.ZodString;
  d: z.ZodOptional<z.ZodString>;
  kid: z.ZodOptional<z.ZodString>;
  alg: z.ZodOptional<z.ZodString>;
  key_ops: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sign">, z.ZodLiteral<"verify">, z.ZodLiteral<"encrypt">, z.ZodLiteral<"decrypt">, z.ZodLiteral<"wrapKey">, z.ZodLiteral<"unwrapKey">, z.ZodLiteral<"deriveKey">, z.ZodLiteral<"deriveBits">]>, z.ZodString]>>>;
  use: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sig">, z.ZodLiteral<"enc">]>, z.ZodString]>>;
  ext: z.ZodOptional<z.ZodBoolean>;
  x5c: z.ZodOptional<z.ZodArray<z.ZodString>>;
  x5t: z.ZodOptional<z.ZodString>;
  'x5t#S256': z.ZodOptional<z.ZodString>;
  x5u: z.ZodOptional<z.ZodString>;
  crv: z.ZodEnum<{
    X25519: "X25519";
  }>;
}, z.core.$strip>, z.ZodObject<{
  kty: z.ZodLiteral<"EC">;
  x: z.ZodString;
  y: z.ZodString;
  d: z.ZodOptional<z.ZodUndefined>;
  kid: z.ZodOptional<z.ZodString>;
  alg: z.ZodOptional<z.ZodString>;
  key_ops: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sign">, z.ZodLiteral<"verify">, z.ZodLiteral<"encrypt">, z.ZodLiteral<"decrypt">, z.ZodLiteral<"wrapKey">, z.ZodLiteral<"unwrapKey">, z.ZodLiteral<"deriveKey">, z.ZodLiteral<"deriveBits">]>, z.ZodString]>>>;
  use: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sig">, z.ZodLiteral<"enc">]>, z.ZodString]>>;
  ext: z.ZodOptional<z.ZodBoolean>;
  x5c: z.ZodOptional<z.ZodArray<z.ZodString>>;
  x5t: z.ZodOptional<z.ZodString>;
  'x5t#S256': z.ZodOptional<z.ZodString>;
  x5u: z.ZodOptional<z.ZodString>;
  crv: z.ZodEnum<{
    "P-256": "P-256";
    "P-384": "P-384";
    "P-521": "P-521";
    secp256k1: "secp256k1";
  }>;
}, z.core.$strip>]>;
type KmsJwkPublicEcdh = z.infer<typeof zKmsJwkPublicEcdh>;
declare const zKmsKeyAgreementEcdhEs: z.ZodObject<{
  keyId: z.ZodString;
  algorithm: z.ZodLiteral<"ECDH-ES">;
  externalPublicJwk: z.ZodUnion<readonly [z.ZodObject<{
    kty: z.ZodLiteral<"OKP">;
    x: z.ZodString;
    d: z.ZodOptional<z.ZodString>;
    kid: z.ZodOptional<z.ZodString>;
    alg: z.ZodOptional<z.ZodString>;
    key_ops: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sign">, z.ZodLiteral<"verify">, z.ZodLiteral<"encrypt">, z.ZodLiteral<"decrypt">, z.ZodLiteral<"wrapKey">, z.ZodLiteral<"unwrapKey">, z.ZodLiteral<"deriveKey">, z.ZodLiteral<"deriveBits">]>, z.ZodString]>>>;
    use: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sig">, z.ZodLiteral<"enc">]>, z.ZodString]>>;
    ext: z.ZodOptional<z.ZodBoolean>;
    x5c: z.ZodOptional<z.ZodArray<z.ZodString>>;
    x5t: z.ZodOptional<z.ZodString>;
    'x5t#S256': z.ZodOptional<z.ZodString>;
    x5u: z.ZodOptional<z.ZodString>;
    crv: z.ZodEnum<{
      X25519: "X25519";
    }>;
  }, z.core.$strip>, z.ZodObject<{
    kty: z.ZodLiteral<"EC">;
    x: z.ZodString;
    y: z.ZodString;
    d: z.ZodOptional<z.ZodUndefined>;
    kid: z.ZodOptional<z.ZodString>;
    alg: z.ZodOptional<z.ZodString>;
    key_ops: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sign">, z.ZodLiteral<"verify">, z.ZodLiteral<"encrypt">, z.ZodLiteral<"decrypt">, z.ZodLiteral<"wrapKey">, z.ZodLiteral<"unwrapKey">, z.ZodLiteral<"deriveKey">, z.ZodLiteral<"deriveBits">]>, z.ZodString]>>>;
    use: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sig">, z.ZodLiteral<"enc">]>, z.ZodString]>>;
    ext: z.ZodOptional<z.ZodBoolean>;
    x5c: z.ZodOptional<z.ZodArray<z.ZodString>>;
    x5t: z.ZodOptional<z.ZodString>;
    'x5t#S256': z.ZodOptional<z.ZodString>;
    x5u: z.ZodOptional<z.ZodString>;
    crv: z.ZodEnum<{
      "P-256": "P-256";
      "P-384": "P-384";
      "P-521": "P-521";
      secp256k1: "secp256k1";
    }>;
  }, z.core.$strip>]>;
  apu: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
  apv: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
}, z.core.$strip>;
type KmsKeyAgreementEcdhEs = z.output<typeof zKmsKeyAgreementEcdhEs>;
declare const zKmsKeyAgreementEncryptEcdhEsKw: z.ZodObject<{
  keyId: z.ZodString;
  algorithm: z.ZodEnum<{
    "ECDH-ES+A128KW": "ECDH-ES+A128KW";
    "ECDH-ES+A192KW": "ECDH-ES+A192KW";
    "ECDH-ES+A256KW": "ECDH-ES+A256KW";
  }>;
  externalPublicJwk: z.ZodUnion<readonly [z.ZodObject<{
    kty: z.ZodLiteral<"OKP">;
    x: z.ZodString;
    d: z.ZodOptional<z.ZodString>;
    kid: z.ZodOptional<z.ZodString>;
    alg: z.ZodOptional<z.ZodString>;
    key_ops: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sign">, z.ZodLiteral<"verify">, z.ZodLiteral<"encrypt">, z.ZodLiteral<"decrypt">, z.ZodLiteral<"wrapKey">, z.ZodLiteral<"unwrapKey">, z.ZodLiteral<"deriveKey">, z.ZodLiteral<"deriveBits">]>, z.ZodString]>>>;
    use: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sig">, z.ZodLiteral<"enc">]>, z.ZodString]>>;
    ext: z.ZodOptional<z.ZodBoolean>;
    x5c: z.ZodOptional<z.ZodArray<z.ZodString>>;
    x5t: z.ZodOptional<z.ZodString>;
    'x5t#S256': z.ZodOptional<z.ZodString>;
    x5u: z.ZodOptional<z.ZodString>;
    crv: z.ZodEnum<{
      X25519: "X25519";
    }>;
  }, z.core.$strip>, z.ZodObject<{
    kty: z.ZodLiteral<"EC">;
    x: z.ZodString;
    y: z.ZodString;
    d: z.ZodOptional<z.ZodUndefined>;
    kid: z.ZodOptional<z.ZodString>;
    alg: z.ZodOptional<z.ZodString>;
    key_ops: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sign">, z.ZodLiteral<"verify">, z.ZodLiteral<"encrypt">, z.ZodLiteral<"decrypt">, z.ZodLiteral<"wrapKey">, z.ZodLiteral<"unwrapKey">, z.ZodLiteral<"deriveKey">, z.ZodLiteral<"deriveBits">]>, z.ZodString]>>>;
    use: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sig">, z.ZodLiteral<"enc">]>, z.ZodString]>>;
    ext: z.ZodOptional<z.ZodBoolean>;
    x5c: z.ZodOptional<z.ZodArray<z.ZodString>>;
    x5t: z.ZodOptional<z.ZodString>;
    'x5t#S256': z.ZodOptional<z.ZodString>;
    x5u: z.ZodOptional<z.ZodString>;
    crv: z.ZodEnum<{
      "P-256": "P-256";
      "P-384": "P-384";
      "P-521": "P-521";
      secp256k1: "secp256k1";
    }>;
  }, z.core.$strip>]>;
  apu: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
  apv: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
}, z.core.$strip>;
type KmsKeyAgreementEncryptEcdhEsKw = z.output<typeof zKmsKeyAgreementEncryptEcdhEsKw>;
declare const zKmsKeyAgreementEncryptEcdhHsalsa20: z.ZodObject<{
  keyId: z.ZodOptional<z.ZodString>;
  algorithm: z.ZodLiteral<"ECDH-HSALSA20">;
  externalPublicJwk: z.ZodObject<{
    kty: z.ZodLiteral<"OKP">;
    x: z.ZodString;
    d: z.ZodOptional<z.ZodString>;
    kid: z.ZodOptional<z.ZodString>;
    alg: z.ZodOptional<z.ZodString>;
    key_ops: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sign">, z.ZodLiteral<"verify">, z.ZodLiteral<"encrypt">, z.ZodLiteral<"decrypt">, z.ZodLiteral<"wrapKey">, z.ZodLiteral<"unwrapKey">, z.ZodLiteral<"deriveKey">, z.ZodLiteral<"deriveBits">]>, z.ZodString]>>>;
    use: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sig">, z.ZodLiteral<"enc">]>, z.ZodString]>>;
    ext: z.ZodOptional<z.ZodBoolean>;
    x5c: z.ZodOptional<z.ZodArray<z.ZodString>>;
    x5t: z.ZodOptional<z.ZodString>;
    'x5t#S256': z.ZodOptional<z.ZodString>;
    x5u: z.ZodOptional<z.ZodString>;
    crv: z.ZodEnum<{
      X25519: "X25519";
    }>;
  }, z.core.$strip>;
}, z.core.$strip>;
type KmsKeyAgreementEncryptEcdhHsalsa20 = z.output<typeof zKmsKeyAgreementEncryptEcdhHsalsa20>;
declare const zKmsKeyAgreementEncryptOptions: z.ZodDiscriminatedUnion<[z.ZodObject<{
  keyId: z.ZodString;
  algorithm: z.ZodLiteral<"ECDH-ES">;
  externalPublicJwk: z.ZodUnion<readonly [z.ZodObject<{
    kty: z.ZodLiteral<"OKP">;
    x: z.ZodString;
    d: z.ZodOptional<z.ZodString>;
    kid: z.ZodOptional<z.ZodString>;
    alg: z.ZodOptional<z.ZodString>;
    key_ops: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sign">, z.ZodLiteral<"verify">, z.ZodLiteral<"encrypt">, z.ZodLiteral<"decrypt">, z.ZodLiteral<"wrapKey">, z.ZodLiteral<"unwrapKey">, z.ZodLiteral<"deriveKey">, z.ZodLiteral<"deriveBits">]>, z.ZodString]>>>;
    use: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sig">, z.ZodLiteral<"enc">]>, z.ZodString]>>;
    ext: z.ZodOptional<z.ZodBoolean>;
    x5c: z.ZodOptional<z.ZodArray<z.ZodString>>;
    x5t: z.ZodOptional<z.ZodString>;
    'x5t#S256': z.ZodOptional<z.ZodString>;
    x5u: z.ZodOptional<z.ZodString>;
    crv: z.ZodEnum<{
      X25519: "X25519";
    }>;
  }, z.core.$strip>, z.ZodObject<{
    kty: z.ZodLiteral<"EC">;
    x: z.ZodString;
    y: z.ZodString;
    d: z.ZodOptional<z.ZodUndefined>;
    kid: z.ZodOptional<z.ZodString>;
    alg: z.ZodOptional<z.ZodString>;
    key_ops: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sign">, z.ZodLiteral<"verify">, z.ZodLiteral<"encrypt">, z.ZodLiteral<"decrypt">, z.ZodLiteral<"wrapKey">, z.ZodLiteral<"unwrapKey">, z.ZodLiteral<"deriveKey">, z.ZodLiteral<"deriveBits">]>, z.ZodString]>>>;
    use: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sig">, z.ZodLiteral<"enc">]>, z.ZodString]>>;
    ext: z.ZodOptional<z.ZodBoolean>;
    x5c: z.ZodOptional<z.ZodArray<z.ZodString>>;
    x5t: z.ZodOptional<z.ZodString>;
    'x5t#S256': z.ZodOptional<z.ZodString>;
    x5u: z.ZodOptional<z.ZodString>;
    crv: z.ZodEnum<{
      "P-256": "P-256";
      "P-384": "P-384";
      "P-521": "P-521";
      secp256k1: "secp256k1";
    }>;
  }, z.core.$strip>]>;
  apu: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
  apv: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
}, z.core.$strip>, z.ZodObject<{
  keyId: z.ZodString;
  algorithm: z.ZodEnum<{
    "ECDH-ES+A128KW": "ECDH-ES+A128KW";
    "ECDH-ES+A192KW": "ECDH-ES+A192KW";
    "ECDH-ES+A256KW": "ECDH-ES+A256KW";
  }>;
  externalPublicJwk: z.ZodUnion<readonly [z.ZodObject<{
    kty: z.ZodLiteral<"OKP">;
    x: z.ZodString;
    d: z.ZodOptional<z.ZodString>;
    kid: z.ZodOptional<z.ZodString>;
    alg: z.ZodOptional<z.ZodString>;
    key_ops: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sign">, z.ZodLiteral<"verify">, z.ZodLiteral<"encrypt">, z.ZodLiteral<"decrypt">, z.ZodLiteral<"wrapKey">, z.ZodLiteral<"unwrapKey">, z.ZodLiteral<"deriveKey">, z.ZodLiteral<"deriveBits">]>, z.ZodString]>>>;
    use: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sig">, z.ZodLiteral<"enc">]>, z.ZodString]>>;
    ext: z.ZodOptional<z.ZodBoolean>;
    x5c: z.ZodOptional<z.ZodArray<z.ZodString>>;
    x5t: z.ZodOptional<z.ZodString>;
    'x5t#S256': z.ZodOptional<z.ZodString>;
    x5u: z.ZodOptional<z.ZodString>;
    crv: z.ZodEnum<{
      X25519: "X25519";
    }>;
  }, z.core.$strip>, z.ZodObject<{
    kty: z.ZodLiteral<"EC">;
    x: z.ZodString;
    y: z.ZodString;
    d: z.ZodOptional<z.ZodUndefined>;
    kid: z.ZodOptional<z.ZodString>;
    alg: z.ZodOptional<z.ZodString>;
    key_ops: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sign">, z.ZodLiteral<"verify">, z.ZodLiteral<"encrypt">, z.ZodLiteral<"decrypt">, z.ZodLiteral<"wrapKey">, z.ZodLiteral<"unwrapKey">, z.ZodLiteral<"deriveKey">, z.ZodLiteral<"deriveBits">]>, z.ZodString]>>>;
    use: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sig">, z.ZodLiteral<"enc">]>, z.ZodString]>>;
    ext: z.ZodOptional<z.ZodBoolean>;
    x5c: z.ZodOptional<z.ZodArray<z.ZodString>>;
    x5t: z.ZodOptional<z.ZodString>;
    'x5t#S256': z.ZodOptional<z.ZodString>;
    x5u: z.ZodOptional<z.ZodString>;
    crv: z.ZodEnum<{
      "P-256": "P-256";
      "P-384": "P-384";
      "P-521": "P-521";
      secp256k1: "secp256k1";
    }>;
  }, z.core.$strip>]>;
  apu: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
  apv: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
}, z.core.$strip>, z.ZodObject<{
  keyId: z.ZodOptional<z.ZodString>;
  algorithm: z.ZodLiteral<"ECDH-HSALSA20">;
  externalPublicJwk: z.ZodObject<{
    kty: z.ZodLiteral<"OKP">;
    x: z.ZodString;
    d: z.ZodOptional<z.ZodString>;
    kid: z.ZodOptional<z.ZodString>;
    alg: z.ZodOptional<z.ZodString>;
    key_ops: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sign">, z.ZodLiteral<"verify">, z.ZodLiteral<"encrypt">, z.ZodLiteral<"decrypt">, z.ZodLiteral<"wrapKey">, z.ZodLiteral<"unwrapKey">, z.ZodLiteral<"deriveKey">, z.ZodLiteral<"deriveBits">]>, z.ZodString]>>>;
    use: z.ZodOptional<z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodLiteral<"sig">, z.ZodLiteral<"enc">]>, z.ZodString]>>;
    ext: z.ZodOptional<z.ZodBoolean>;
    x5c: z.ZodOptional<z.ZodArray<z.ZodString>>;
    x5t: z.ZodOptional<z.ZodString>;
    'x5t#S256': z.ZodOptional<z.ZodString>;
    x5u: z.ZodOptional<z.ZodString>;
    crv: z.ZodEnum<{
      X25519: "X25519";
    }>;
  }, z.core.$strip>;
}, z.core.$strip>], "algorithm">;
type KmsKeyAgreementEncryptOptions = z.output<typeof zKmsKeyAgreementEncryptOptions>;
//#endregion
export { KmsJwkPublicEcdh, KmsKeyAgreementEcdhEs, KmsKeyAgreementEncryptEcdhEsKw, KmsKeyAgreementEncryptEcdhHsalsa20, KmsKeyAgreementEncryptOptions };
//# sourceMappingURL=KmsKeyAgreementEncryptOptions.d.ts.map