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

//#region src/modules/kms/options/KmsDecryptOptions.d.ts
declare const zKmsDecryptDataDecryptionAesGcm: z.ZodObject<{
  algorithm: z.ZodEnum<{
    A128GCM: "A128GCM";
    A192GCM: "A192GCM";
    A256GCM: "A256GCM";
  }>;
  iv: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
  aad: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
  tag: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
}, z.core.$strip>;
type KmsDecryptDataDecryptionAesGcm = z.output<typeof zKmsDecryptDataDecryptionAesGcm>;
declare const zKmsDecryptDataDecryptionAesCbc: z.ZodObject<{
  algorithm: z.ZodEnum<{
    A128CBC: "A128CBC";
    A256CBC: "A256CBC";
  }>;
  iv: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
}, z.core.$strip>;
type KmsDecryptDataDecryptionAesCbc = z.output<typeof zKmsDecryptDataDecryptionAesCbc>;
declare const zKmsDecryptDataDecryptionC20p: z.ZodObject<{
  algorithm: z.ZodEnum<{
    C20P: "C20P";
    XC20P: "XC20P";
  }>;
  iv: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
  aad: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
  tag: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
}, z.core.$strip>;
type KmsDecryptDataDecryptionC20p = z.output<typeof zKmsDecryptDataDecryptionC20p>;
declare const zKmsDecryptDataDecryption: z.ZodDiscriminatedUnion<[z.ZodObject<{
  algorithm: z.ZodEnum<{
    A128CBC: "A128CBC";
    A256CBC: "A256CBC";
  }>;
  iv: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
}, z.core.$strip>, z.ZodObject<{
  algorithm: z.ZodEnum<{
    "A128CBC-HS256": "A128CBC-HS256";
    "A192CBC-HS384": "A192CBC-HS384";
    "A256CBC-HS512": "A256CBC-HS512";
  }>;
  iv: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
  aad: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
  tag: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
}, z.core.$strip>, z.ZodObject<{
  algorithm: z.ZodEnum<{
    A128GCM: "A128GCM";
    A192GCM: "A192GCM";
    A256GCM: "A256GCM";
  }>;
  iv: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
  aad: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
  tag: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
}, z.core.$strip>, z.ZodObject<{
  algorithm: z.ZodEnum<{
    C20P: "C20P";
    XC20P: "XC20P";
  }>;
  iv: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
  aad: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
  tag: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
}, z.core.$strip>, z.ZodObject<{
  algorithm: z.ZodEnum<{
    "XSALSA20-POLY1305": "XSALSA20-POLY1305";
  }>;
  iv: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
}, z.core.$strip>], "algorithm">;
type KmsDecryptDataDecryption = z.output<typeof zKmsDecryptDataDecryption>;
declare const zKmsDecryptOptions: z.ZodObject<{
  key: z.ZodUnion<readonly [z.ZodObject<{
    keyId: z.ZodString;
    privateJwk: z.ZodOptional<z.ZodNever>;
    keyAgreement: z.ZodOptional<z.ZodNever>;
  }, z.core.$strip>, z.ZodObject<{
    privateJwk: z.ZodObject<{
      k: z.ZodString;
      kty: z.ZodLiteral<"oct">;
      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>;
    }, z.core.$strip>;
    keyId: z.ZodOptional<z.ZodNever>;
    keyAgreement: z.ZodOptional<z.ZodNever>;
  }, z.core.$strip>, z.ZodObject<{
    keyAgreement: 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>]>;
      encryptedKey: z.ZodObject<{
        tag: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
        iv: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
        encrypted: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
      }, 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.ZodLiteral<"ECDH-HSALSA20">;
      externalPublicJwk: z.ZodOptional<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">;
    keyId: z.ZodOptional<z.ZodNever>;
    privateJwk: z.ZodOptional<z.ZodNever>;
  }, z.core.$strip>]>;
  decryption: z.ZodDiscriminatedUnion<[z.ZodObject<{
    algorithm: z.ZodEnum<{
      A128CBC: "A128CBC";
      A256CBC: "A256CBC";
    }>;
    iv: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
  }, z.core.$strip>, z.ZodObject<{
    algorithm: z.ZodEnum<{
      "A128CBC-HS256": "A128CBC-HS256";
      "A192CBC-HS384": "A192CBC-HS384";
      "A256CBC-HS512": "A256CBC-HS512";
    }>;
    iv: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
    aad: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
    tag: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
  }, z.core.$strip>, z.ZodObject<{
    algorithm: z.ZodEnum<{
      A128GCM: "A128GCM";
      A192GCM: "A192GCM";
      A256GCM: "A256GCM";
    }>;
    iv: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
    aad: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
    tag: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
  }, z.core.$strip>, z.ZodObject<{
    algorithm: z.ZodEnum<{
      C20P: "C20P";
      XC20P: "XC20P";
    }>;
    iv: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
    aad: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
    tag: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
  }, z.core.$strip>, z.ZodObject<{
    algorithm: z.ZodEnum<{
      "XSALSA20-POLY1305": "XSALSA20-POLY1305";
    }>;
    iv: z.ZodOptional<z.ZodCustom<AnyUint8Array, AnyUint8Array>>;
  }, z.core.$strip>], "algorithm">;
  encrypted: z.ZodCustom<AnyUint8Array, AnyUint8Array>;
}, z.core.$strip>;
type KmsDecryptOptions = z.output<typeof zKmsDecryptOptions>;
interface KmsDecryptReturn {
  /**
   * The decrypted data
   */
  data: Uint8ArrayBuffer;
}
//#endregion
export { KmsDecryptDataDecryption, KmsDecryptDataDecryptionAesCbc, KmsDecryptDataDecryptionAesGcm, KmsDecryptDataDecryptionC20p, KmsDecryptOptions, KmsDecryptReturn };
//# sourceMappingURL=KmsDecryptOptions.d.ts.map