export interface SymmetricEncryptionAttributes {
    /** The block cipher method to use for encryption. */
    Mode: 'ECB' | 'CBC' | 'CFB' | 'CFB1' | 'CFB8' | 'CFB64' | 'CFB128' | 'OFB';
    /** An input used to provide the intial state. If no value is provided, Amazon Web Services Payment Cryptography defaults it to zero. */
    InitializationVector?: string;
    /** The padding to be included with the data. */
    PaddingType?: 'PKCS1' | 'OAEP_SHA1' | 'OAEP_SHA256' | 'OAEP_SHA512';
}
export interface AsymmetricEncryptionAttributes {
    /** The padding to be included with the data. */
    PaddingType?: 'PKCS1' | 'OAEP_SHA1' | 'OAEP_SHA256' | 'OAEP_SHA512';
}
export interface DukptEncryptionAttributes {
    /** The unique identifier known as Key Serial Number (KSN) that comes from an encrypting device using DUKPT encryption method. The KSN is derived from the encrypting device unique identifier and an intern */
    KeySerialNumber: string;
    /** The block cipher method to use for encryption. The default is CBC. */
    Mode?: 'ECB' | 'CBC';
    /** The key type encrypted using DUKPT from a Base Derivation Key (BDK) and Key Serial Number (KSN). This must be less than or equal to the strength of the BDK. For example, you can't use AES_128 as a der */
    DukptKeyDerivationType?: 'TDES_2KEY' | 'TDES_3KEY' | 'AES_128' | 'AES_192' | 'AES_256';
    /** The type of use of DUKPT, which can be incoming data decryption, outgoing data encryption, or both. */
    DukptKeyVariant?: 'BIDIRECTIONAL' | 'REQUEST' | 'RESPONSE';
    /** An input used to provide the intial state. If no value is provided, Amazon Web Services Payment Cryptography defaults it to zero. */
    InitializationVector?: string;
}
export interface EmvEncryptionAttributes {
    /** The EMV derivation mode to use for ICC master key derivation as per EMV version 4.3 book 2. */
    MajorKeyDerivationMode: 'EMV_OPTION_A' | 'EMV_OPTION_B';
    /** The Primary Account Number (PAN), a unique identifier for a payment credit or debit card and associates the card to a specific account holder. */
    PrimaryAccountNumber: string;
    /** A number that identifies and differentiates payment cards with the same Primary Account Number (PAN). Typically 00 is used, if no value is provided by the terminal. */
    PanSequenceNumber: string;
    /** The derivation value used to derive the ICC session key. It is typically the application transaction counter value padded with zeros or previous ARQC value padded with zeros as per EMV version 4.3 boo */
    SessionDerivationData: string;
    /** The block cipher method to use for encryption. */
    Mode?: 'ECB' | 'CBC';
    /** An input used to provide the intial state. If no value is provided, Amazon Web Services Payment Cryptography defaults it to zero. */
    InitializationVector?: string;
}
export interface WrappedKey {
    /** Parameter information of a WrappedKeyBlock for encryption key exchange. */
    WrappedKeyMaterial: {
        Tr31KeyBlock?: string;
    } | {
        DiffieHellmanSymmetricKey?: any;
    };
    /** The algorithm that Amazon Web Services Payment Cryptography uses to calculate the key check value (KCV). It is used to validate the key integrity. For TDES keys, the KCV is computed by encrypting 8 by */
    KeyCheckValueAlgorithm?: 'CMAC' | 'ANSI_X9_24' | 'HMAC' | 'SHA_1';
}
export interface KekValidationRequest {
    /** The key derivation algorithm to use for generating a KEK validation request. */
    DeriveKeyAlgorithm: 'TDES_2KEY' | 'TDES_3KEY' | 'AES_128' | 'AES_192' | 'AES_256' | 'HMAC_SHA256' | 'HMAC_SHA384' | 'HMAC_SHA512' | 'HMAC_SHA224';
}
export interface KekValidationResponse {
    /** The random key for generating a KEK validation response. */
    RandomKeySend: string;
}
export interface AmexCardSecurityCodeVersion1 {
    /** The expiry date of a payment card. */
    CardExpiryDate: string;
}
export interface AmexCardSecurityCodeVersion2 {
    /** The expiry date of a payment card. */
    CardExpiryDate: string;
    /** The service code of the AMEX payment card. This is different from the Card Security Code (CSC). */
    ServiceCode: string;
}
export interface CardVerificationValue1 {
    /** The expiry date of a payment card. */
    CardExpiryDate: string;
    /** The service code of the payment card. This is different from Card Security Code (CSC). */
    ServiceCode: string;
}
export interface CardVerificationValue2 {
    /** The expiry date of a payment card. */
    CardExpiryDate: string;
}
export interface CardHolderVerificationValue {
    /** A random number generated by the issuer. */
    UnpredictableNumber: string;
    /** A number that identifies and differentiates payment cards with the same Primary Account Number (PAN). */
    PanSequenceNumber: string;
    /** The transaction counter value that comes from a point of sale terminal. */
    ApplicationTransactionCounter: string;
}
export interface DynamicCardVerificationCode {
    /** A random number generated by the issuer. */
    UnpredictableNumber: string;
    /** A number that identifies and differentiates payment cards with the same Primary Account Number (PAN). */
    PanSequenceNumber: string;
    /** The transaction counter value that comes from the terminal. */
    ApplicationTransactionCounter: string;
    /** The data on the two tracks of magnetic cards used for financial transactions. This includes the cardholder name, PAN, expiration date, bank ID (BIN) and several other numbers the issuing bank uses to  */
    TrackData: string;
}
export interface DynamicCardVerificationValue {
    /** A number that identifies and differentiates payment cards with the same Primary Account Number (PAN). */
    PanSequenceNumber: string;
    /** The expiry date of a payment card. */
    CardExpiryDate: string;
    /** The service code of the payment card. This is different from Card Security Code (CSC). */
    ServiceCode: string;
    /** The transaction counter value that comes from the terminal. */
    ApplicationTransactionCounter: string;
}
export interface MacAlgorithmEmv {
    /** The method to use when deriving the master key for EMV MAC generation or verification. */
    MajorKeyDerivationMode: 'EMV_OPTION_A' | 'EMV_OPTION_B';
    /** The Primary Account Number (PAN), a unique identifier for a payment credit or debit card and associates the card to a specific account holder. */
    PrimaryAccountNumber: string;
    /** A number that identifies and differentiates payment cards with the same Primary Account Number (PAN). */
    PanSequenceNumber: string;
    /** The method of deriving a session key for EMV MAC generation or verification. */
    SessionKeyDerivationMode: 'EMV_COMMON_SESSION_KEY' | 'EMV2000' | 'AMEX' | 'MASTERCARD_SESSION_KEY' | 'VISA';
    /** Parameters that are required to generate session key for EMV generation and verification. */
    SessionKeyDerivationValue: any;
}
export interface MacAlgorithmDukpt {
    /** The unique identifier known as Key Serial Number (KSN) that comes from an encrypting device using DUKPT encryption method. The KSN is derived from the encrypting device unique identifier and an intern */
    KeySerialNumber: string;
    /** The type of use of DUKPT, which can be MAC generation, MAC verification, or both. */
    DukptKeyVariant: 'BIDIRECTIONAL' | 'REQUEST' | 'RESPONSE';
    /** The key type derived using DUKPT from a Base Derivation Key (BDK) and Key Serial Number (KSN). This must be less than or equal to the strength of the BDK. For example, you can't use AES_128 as a deriv */
    DukptDerivationType?: 'TDES_2KEY' | 'TDES_3KEY' | 'AES_128' | 'AES_192' | 'AES_256';
}
export interface EmvCommonAttributes {
    /** The method to use when deriving the master key for the payment card. */
    MajorKeyDerivationMode: 'EMV_OPTION_A' | 'EMV_OPTION_B';
    /** The Primary Account Number (PAN) of the cardholder. */
    PrimaryAccountNumber: string;
    /** A number that identifies and differentiates payment cards with the same Primary Account Number (PAN). Typically 00 is used, if no value is provided by the terminal. */
    PanSequenceNumber: string;
    /** The application cryptogram for the current transaction that is provided by the terminal during transaction processing. */
    ApplicationCryptogram: string;
    /** The block cipher method to use for encryption. */
    Mode: 'ECB' | 'CBC';
    /** The padding to be added to the PIN block prior to encryption. Padding type should be ISO_IEC_7816_4, if PinBlockLengthPosition is set to FRONT_OF_PIN_BLOCK. No padding is required, if PinBlockLengthPo */
    PinBlockPaddingType: 'NO_PADDING' | 'ISO_IEC_7816_4';
    /** Specifies if PIN block length should be added to front of the pin block. If value is set to FRONT_OF_PIN_BLOCK, then PIN block padding type should be ISO_IEC_7816_4. */
    PinBlockLengthPosition: 'NONE' | 'FRONT_OF_PIN_BLOCK';
}
export interface AmexAttributes {
    /** The method to use when deriving the master key for a payment card using Amex derivation. */
    MajorKeyDerivationMode: 'EMV_OPTION_A' | 'EMV_OPTION_B';
    /** The Primary Account Number (PAN) of the cardholder. */
    PrimaryAccountNumber: string;
    /** A number that identifies and differentiates payment cards with the same Primary Account Number (PAN). Typically 00 is used, if no value is provided by the terminal. */
    PanSequenceNumber: string;
    /** The transaction counter of the current transaction that is provided by the terminal during transaction processing. */
    ApplicationTransactionCounter: string;
    /** The keyArn of the issuer master key for cryptogram (IMK-AC) for the payment card. */
    AuthorizationRequestKeyIdentifier: string;
    /** The encrypted pinblock of the old pin stored on the chip card. */
    CurrentPinAttributes?: any;
}
export interface VisaAttributes {
    /** The method to use when deriving the master key for the payment card. */
    MajorKeyDerivationMode: 'EMV_OPTION_A' | 'EMV_OPTION_B';
    /** The Primary Account Number (PAN) of the cardholder. */
    PrimaryAccountNumber: string;
    /** A number that identifies and differentiates payment cards with the same Primary Account Number (PAN). Typically 00 is used, if no value is provided by the terminal. */
    PanSequenceNumber: string;
    /** The transaction counter of the current transaction that is provided by the terminal during transaction processing. */
    ApplicationTransactionCounter: string;
    /** The keyArn of the issuer master key for cryptogram (IMK-AC) for the payment card. */
    AuthorizationRequestKeyIdentifier: string;
    /** The encrypted pinblock of the old pin stored on the chip card. */
    CurrentPinAttributes?: any;
}
export interface Emv2000Attributes {
    /** The method to use when deriving the master key for the payment card. */
    MajorKeyDerivationMode: 'EMV_OPTION_A' | 'EMV_OPTION_B';
    /** The Primary Account Number (PAN) of the cardholder. */
    PrimaryAccountNumber: string;
    /** A number that identifies and differentiates payment cards with the same Primary Account Number (PAN). Typically 00 is used, if no value is provided by the terminal. */
    PanSequenceNumber: string;
    /** The transaction counter of the current transaction that is provided by the terminal during transaction processing. */
    ApplicationTransactionCounter: string;
}
export interface MasterCardAttributes {
    /** The method to use when deriving the master key for the payment card. */
    MajorKeyDerivationMode: 'EMV_OPTION_A' | 'EMV_OPTION_B';
    /** The Primary Account Number (PAN) of the cardholder. */
    PrimaryAccountNumber: string;
    /** A number that identifies and differentiates payment cards with the same Primary Account Number (PAN). Typically 00 is used, if no value is provided by the terminal. */
    PanSequenceNumber: string;
    /** The application cryptogram for the current transaction that is provided by the terminal during transaction processing. */
    ApplicationCryptogram: string;
}
export interface VisaPin {
    /** The value for PIN verification index. It is used in the Visa PIN algorithm to calculate the PVV (PIN Verification Value). */
    PinVerificationKeyIndex: number;
}
export interface VisaPinVerificationValue {
    /** The encrypted PIN block data to verify. */
    EncryptedPinBlock: string;
    /** The value for PIN verification index. It is used in the Visa PIN algorithm to calculate the PVV (PIN Verification Value). */
    PinVerificationKeyIndex: number;
}
export interface Ibm3624PinOffset {
    /** The encrypted PIN block data. According to ISO 9564 standard, a PIN Block is an encoded representation of a payment card Personal Account Number (PAN) and the cardholder Personal Identification Number */
    EncryptedPinBlock: string;
    /** The decimalization table to use for IBM 3624 PIN algorithm. The table is used to convert the algorithm intermediate result from hexadecimal characters to decimal. */
    DecimalizationTable: string;
    /** The padding character for validation data. */
    PinValidationDataPadCharacter: string;
    /** The unique data for cardholder identification. */
    PinValidationData: string;
}
export interface Ibm3624NaturalPin {
    /** The decimalization table to use for IBM 3624 PIN algorithm. The table is used to convert the algorithm intermediate result from hexadecimal characters to decimal. */
    DecimalizationTable: string;
    /** The padding character for validation data. */
    PinValidationDataPadCharacter: string;
    /** The unique data for cardholder identification. */
    PinValidationData: string;
}
export interface Ibm3624RandomPin {
    /** The decimalization table to use for IBM 3624 PIN algorithm. The table is used to convert the algorithm intermediate result from hexadecimal characters to decimal. */
    DecimalizationTable: string;
    /** The padding character for validation data. */
    PinValidationDataPadCharacter: string;
    /** The unique data for cardholder identification. */
    PinValidationData: string;
}
export interface Ibm3624PinFromOffset {
    /** The decimalization table to use for IBM 3624 PIN algorithm. The table is used to convert the algorithm intermediate result from hexadecimal characters to decimal. */
    DecimalizationTable: string;
    /** The padding character for validation data. */
    PinValidationDataPadCharacter: string;
    /** The unique data for cardholder identification. */
    PinValidationData: string;
    /** The PIN offset value. */
    PinOffset: string;
}
export interface IncomingDiffieHellmanTr31KeyBlock {
    /** The keyARN of the asymmetric ECC key pair. */
    PrivateKeyIdentifier: string;
    /** The keyArn of the certificate that signed the client's PublicKeyCertificate. */
    CertificateAuthorityPublicKeyIdentifier: string;
    /** The client's public key certificate in PEM format (base64 encoded) to use for ECDH key derivation. */
    PublicKeyCertificate: string;
    /** The key algorithm of the derived ECDH key. */
    DeriveKeyAlgorithm: 'TDES_2KEY' | 'TDES_3KEY' | 'AES_128' | 'AES_192' | 'AES_256' | 'HMAC_SHA256' | 'HMAC_SHA384' | 'HMAC_SHA512' | 'HMAC_SHA224';
    /** The key derivation function to use for deriving a key using ECDH. */
    KeyDerivationFunction: 'NIST_SP800' | 'ANSI_X963';
    /** The hash type to use for deriving a key using ECDH. */
    KeyDerivationHashAlgorithm: 'SHA_256' | 'SHA_384' | 'SHA_512';
    DerivationData: any;
    /** The WrappedKeyBlock containing the transaction key wrapped using an ECDH dervied key. */
    WrappedKeyBlock: string;
}
export interface OutgoingTr31KeyBlock {
    /** The keyARN of the KEK used to wrap the transaction key. */
    WrappingKeyIdentifier: string;
}
export interface TranslationPinDataIsoFormat034 {
    /** The Primary Account Number (PAN) of the cardholder. A PAN is a unique identifier for a payment credit or debit card and associates the card to a specific account holder. */
    PrimaryAccountNumber: string;
}
export interface TranslationPinDataAs2805Format0 {
    /** The Primary Account Number (PAN) of the cardholder. A PAN is a unique identifier for a payment credit or debit card and associates the card to a specific account holder. */
    PrimaryAccountNumber: string;
}
export interface DukptDerivationAttributes {
    /** The unique identifier known as Key Serial Number (KSN) that comes from an encrypting device using DUKPT encryption method. The KSN is derived from the encrypting device unique identifier and an intern */
    KeySerialNumber: string;
    /** The key type derived using DUKPT from a Base Derivation Key (BDK) and Key Serial Number (KSN). This must be less than or equal to the strength of the BDK. For example, you can't use AES_128 as a deriv */
    DukptKeyDerivationType?: 'TDES_2KEY' | 'TDES_3KEY' | 'AES_128' | 'AES_192' | 'AES_256';
    /** The type of use of DUKPT, which can be for incoming data decryption, outgoing data encryption, or both. */
    DukptKeyVariant?: 'BIDIRECTIONAL' | 'REQUEST' | 'RESPONSE';
}
export interface As2805PekDerivationAttributes {
    /** The system trace audit number for the transaction. */
    SystemTraceAuditNumber: string;
    /** The transaction amount for the transaction. */
    TransactionAmount: string;
}
export interface SessionKeyEmvCommon {
    /** The Primary Account Number (PAN) of the cardholder. A PAN is a unique identifier for a payment credit or debit card and associates the card to a specific account holder. */
    PrimaryAccountNumber: string;
    /** A number that identifies and differentiates payment cards with the same Primary Account Number (PAN). */
    PanSequenceNumber: string;
    /** The transaction counter that is provided by the terminal during transaction processing. */
    ApplicationTransactionCounter: string;
}
export interface SessionKeyMastercard {
    /** The Primary Account Number (PAN) of the cardholder. A PAN is a unique identifier for a payment credit or debit card and associates the card to a specific account holder. */
    PrimaryAccountNumber: string;
    /** A number that identifies and differentiates payment cards with the same Primary Account Number (PAN). */
    PanSequenceNumber: string;
    /** The transaction counter that is provided by the terminal during transaction processing. */
    ApplicationTransactionCounter: string;
    /** A random number generated by the issuer. */
    UnpredictableNumber: string;
}
export interface SessionKeyEmv2000 {
    /** The Primary Account Number (PAN) of the cardholder. A PAN is a unique identifier for a payment credit or debit card and associates the card to a specific account holder. */
    PrimaryAccountNumber: string;
    /** A number that identifies and differentiates payment cards with the same Primary Account Number (PAN). */
    PanSequenceNumber: string;
    /** The transaction counter that is provided by the terminal during transaction processing. */
    ApplicationTransactionCounter: string;
}
export interface SessionKeyAmex {
    /** The Primary Account Number (PAN) of the cardholder. A PAN is a unique identifier for a payment credit or debit card and associates the card to a specific account holder. */
    PrimaryAccountNumber: string;
    /** A number that identifies and differentiates payment cards with the same Primary Account Number (PAN). */
    PanSequenceNumber: string;
}
export interface SessionKeyVisa {
    /** The Primary Account Number (PAN) of the cardholder. A PAN is a unique identifier for a payment credit or debit card and associates the card to a specific account holder. */
    PrimaryAccountNumber: string;
    /** A number that identifies and differentiates payment cards with the same Primary Account Number (PAN). */
    PanSequenceNumber: string;
}
export interface CryptogramVerificationArpcMethod1 {
    /** The auth code used to calculate APRC after ARQC verification is successful. This is the same auth code used for ARQC generation outside of Amazon Web Services Payment Cryptography. */
    AuthResponseCode: string;
}
export interface CryptogramVerificationArpcMethod2 {
    /** The data indicating whether the issuer approves or declines an online transaction using an EMV chip card. */
    CardStatusUpdate: string;
    /** The proprietary authentication data used by issuer for communication during online transaction using an EMV chip card. */
    ProprietaryAuthenticationData?: string;
}
export interface DiscoverDynamicCardVerificationCode {
    /** The expiry date of a payment card. */
    CardExpiryDate: string;
    /** A random number that is generated by the issuer. */
    UnpredictableNumber: string;
    /** The transaction counter value that comes from the terminal. */
    ApplicationTransactionCounter: string;
}
export interface VisaPinVerification {
    /** The value for PIN verification index. It is used in the Visa PIN algorithm to calculate the PVV (PIN Verification Value). */
    PinVerificationKeyIndex: number;
    /** Parameters that are required to generate or verify Visa PVV (PIN Verification Value). */
    VerificationValue: string;
}
export interface Ibm3624PinVerification {
    /** The decimalization table to use for IBM 3624 PIN algorithm. The table is used to convert the algorithm intermediate result from hexadecimal characters to decimal. */
    DecimalizationTable: string;
    /** The padding character for validation data. */
    PinValidationDataPadCharacter: string;
    /** The unique data for cardholder identification. */
    PinValidationData: string;
    /** The PIN offset value. */
    PinOffset: string;
}
export interface DukptAttributes {
    /** The unique identifier known as Key Serial Number (KSN) that comes from an encrypting device using DUKPT encryption method. The KSN is derived from the encrypting device unique identifier and an intern */
    KeySerialNumber: string;
    /** The key type derived using DUKPT from a Base Derivation Key (BDK) and Key Serial Number (KSN). This must be less than or equal to the strength of the BDK. For example, you can't use AES_128 as a deriv */
    DukptDerivationType: 'TDES_2KEY' | 'TDES_3KEY' | 'AES_128' | 'AES_192' | 'AES_256';
}
export interface DecryptDataInput {
    /** The ciphertext to decrypt. */
    CipherText: string;
    /** The encryption key type and attributes for ciphertext decryption. */
    DecryptionAttributes: {
        Symmetric?: SymmetricEncryptionAttributes;
    } | {
        Asymmetric?: AsymmetricEncryptionAttributes;
    } | {
        Dukpt?: DukptEncryptionAttributes;
    } | {
        Emv?: EmvEncryptionAttributes;
    };
    /** The keyARN of the encryption key that Amazon Web Services Payment Cryptography uses for ciphertext decryption. When a WrappedKeyBlock is provided, this value will be the identifier to the key wrapping */
    KeyIdentifier: string;
    /** The WrappedKeyBlock containing the encryption key for ciphertext decryption. */
    WrappedKey?: WrappedKey;
}
export interface EncryptDataInput {
    /** The encryption key type and attributes for plaintext encryption. */
    EncryptionAttributes: {
        Symmetric?: SymmetricEncryptionAttributes;
    } | {
        Asymmetric?: AsymmetricEncryptionAttributes;
    } | {
        Dukpt?: DukptEncryptionAttributes;
    } | {
        Emv?: EmvEncryptionAttributes;
    };
    /** The keyARN of the encryption key that Amazon Web Services Payment Cryptography uses for plaintext encryption. When a WrappedKeyBlock is provided, this value will be the identifier to the key wrapping  */
    KeyIdentifier: string;
    /** The plaintext to be encrypted. For encryption using asymmetric keys, plaintext data length is constrained by encryption key strength that you define in KeyAlgorithm and padding type that you define in */
    PlainText: string;
    /** The WrappedKeyBlock containing the encryption key for plaintext encryption. */
    WrappedKey?: WrappedKey;
}
export interface GenerateAs2805KekValidationInput {
    /** Parameter information for generating a random key for KEK validation to perform node-to-node initialization. */
    KekValidationType: {
        KekValidationRequest?: KekValidationRequest;
    } | {
        KekValidationResponse?: KekValidationResponse;
    };
    /** The keyARN of sending KEK that Amazon Web Services Payment Cryptography uses for node-to-node initialization */
    KeyIdentifier: string;
    /** The key variant to use for generating a random key for KEK validation during node-to-node initialization. */
    RandomKeySendVariantMask: 'VARIANT_MASK_82C0' | 'VARIANT_MASK_82';
}
export interface GenerateCardValidationDataInput {
    /** The algorithm for generating CVV or CSC values for the card within Amazon Web Services Payment Cryptography. */
    GenerationAttributes: any;
    /** The keyARN of the CVK encryption key that Amazon Web Services Payment Cryptography uses to generate card data. */
    KeyIdentifier: string;
    /** The Primary Account Number (PAN), a unique identifier for a payment credit or debit card that associates the card with a specific account holder. */
    PrimaryAccountNumber: string;
    /** The length of the CVV or CSC to be generated. The default value is 3. */
    ValidationDataLength?: number;
}
export interface GenerateMacInput {
    /** The attributes and data values to use for MAC generation within Amazon Web Services Payment Cryptography. */
    GenerationAttributes: any;
    /** The keyARN of the MAC generation encryption key. */
    KeyIdentifier: string;
    /** The data for which a MAC is under generation. This value must be hexBinary. */
    MessageData: string;
    /** The length of a MAC under generation. */
    MacLength?: number;
}
export interface GenerateMacEmvPinChangeInput {
    /** The attributes and data values to derive payment card specific confidentiality and integrity keys. */
    DerivationMethodAttributes: any;
    /** The message data is the APDU command from the card reader or terminal. The target encrypted PIN block, after translation to ISO2 format, is appended to this message data to generate an issuer script r */
    MessageData: string;
    /** The incoming new encrypted PIN block data for offline pin change on an EMV card. */
    NewEncryptedPinBlock: string;
    /** The keyARN of the PEK protecting the incoming new encrypted PIN block. */
    NewPinPekIdentifier: string;
    /** The PIN encoding format of the incoming new encrypted PIN block as specified in ISO 9564. */
    PinBlockFormat: 'ISO_FORMAT_0' | 'ISO_FORMAT_1' | 'ISO_FORMAT_3';
    /** The keyARN of the issuer master key (IMK-SMC) used to protect the PIN block data in the issuer script response. */
    SecureMessagingConfidentialityKeyIdentifier: string;
    /** The keyARN of the issuer master key (IMK-SMI) used to authenticate the issuer script response. */
    SecureMessagingIntegrityKeyIdentifier: string;
}
export interface GeneratePinDataInput {
    /** The keyARN of the PEK that Amazon Web Services Payment Cryptography uses to encrypt the PIN Block. For ECDH, it is the keyARN of the asymmetric ECC key. */
    EncryptionKeyIdentifier: string;
    /** The attributes and values to use for PIN, PVV, or PIN Offset generation. */
    GenerationAttributes: any;
    /** The keyARN of the PEK that Amazon Web Services Payment Cryptography uses for pin data generation. */
    GenerationKeyIdentifier: string;
    /** The PIN encoding format for pin data generation as specified in ISO 9564. Amazon Web Services Payment Cryptography supports ISO_Format_0, ISO_Format_3 and ISO_Format_4. The ISO_Format_0 PIN block form */
    PinBlockFormat: 'ISO_FORMAT_0' | 'ISO_FORMAT_1' | 'ISO_FORMAT_3' | 'ISO_FORMAT_4';
    EncryptionWrappedKey?: WrappedKey;
    /** The length of PIN under generation. */
    PinDataLength?: number;
    /** The Primary Account Number (PAN), a unique identifier for a payment credit or debit card that associates the card with a specific account holder. */
    PrimaryAccountNumber?: string;
}
export interface ReEncryptDataInput {
    /** Ciphertext to be encrypted. The minimum allowed length is 16 bytes and maximum allowed length is 4096 bytes. */
    CipherText: string;
    /** The attributes and values for incoming ciphertext. */
    IncomingEncryptionAttributes: {
        Symmetric?: SymmetricEncryptionAttributes;
    } | {
        Dukpt?: DukptEncryptionAttributes;
    };
    /** The keyARN of the encryption key of incoming ciphertext data. When a WrappedKeyBlock is provided, this value will be the identifier to the key wrapping key. Otherwise, it is the key identifier used to */
    IncomingKeyIdentifier: string;
    /** The attributes and values for outgoing ciphertext data after encryption by Amazon Web Services Payment Cryptography. */
    OutgoingEncryptionAttributes: {
        Symmetric?: SymmetricEncryptionAttributes;
    } | {
        Dukpt?: DukptEncryptionAttributes;
    };
    /** The keyARN of the encryption key of outgoing ciphertext data after encryption by Amazon Web Services Payment Cryptography. */
    OutgoingKeyIdentifier: string;
    /** The WrappedKeyBlock containing the encryption key of incoming ciphertext data. */
    IncomingWrappedKey?: WrappedKey;
    /** The WrappedKeyBlock containing the encryption key of outgoing ciphertext data after encryption by Amazon Web Services Payment Cryptography. */
    OutgoingWrappedKey?: WrappedKey;
}
export interface TranslateKeyMaterialInput {
    /** Parameter information of the TR31WrappedKeyBlock containing the transaction key. */
    IncomingKeyMaterial: {
        DiffieHellmanTr31KeyBlock?: IncomingDiffieHellmanTr31KeyBlock;
    };
    /** Parameter information of the wrapping key used to wrap the transaction key in the outgoing TR31WrappedKeyBlock. */
    OutgoingKeyMaterial: {
        Tr31KeyBlock?: OutgoingTr31KeyBlock;
    };
    /** The key check value (KCV) algorithm used for calculating the KCV of the derived key. */
    KeyCheckValueAlgorithm?: 'CMAC' | 'ANSI_X9_24' | 'HMAC' | 'SHA_1';
}
export interface TranslatePinDataInput {
    /** The encrypted PIN block data that Amazon Web Services Payment Cryptography translates. */
    EncryptedPinBlock: string;
    /** The keyARN of the encryption key under which incoming PIN block data is encrypted. This key type can be PEK or BDK. For dynamic keys, it is the keyARN of KEK of the TR-31 wrapped PEK. For ECDH, it is  */
    IncomingKeyIdentifier: string;
    /** The format of the incoming PIN block data for translation within Amazon Web Services Payment Cryptography. */
    IncomingTranslationAttributes: any;
    /** The keyARN of the encryption key for encrypting outgoing PIN block data. This key type can be PEK or BDK. For ECDH, it is the keyARN of the asymmetric ECC key. */
    OutgoingKeyIdentifier: string;
    /** The format of the outgoing PIN block data after translation by Amazon Web Services Payment Cryptography. */
    OutgoingTranslationAttributes: any;
    /** The attributes and values to use for incoming AS2805 encryption key for PIN block translation. */
    IncomingAs2805Attributes?: As2805PekDerivationAttributes;
    /** The attributes and values to use for incoming DUKPT encryption key for PIN block translation. */
    IncomingDukptAttributes?: DukptDerivationAttributes;
    /** The WrappedKeyBlock containing the encryption key under which incoming PIN block data is encrypted. */
    IncomingWrappedKey?: WrappedKey;
    /** The attributes and values to use for outgoing DUKPT encryption key after PIN block translation. */
    OutgoingDukptAttributes?: DukptDerivationAttributes;
    /** The WrappedKeyBlock containing the encryption key for encrypting outgoing PIN block data. */
    OutgoingWrappedKey?: WrappedKey;
}
export interface VerifyAuthRequestCryptogramInput {
    /** The auth request cryptogram imported into Amazon Web Services Payment Cryptography for ARQC verification using a major encryption key and transaction data. */
    AuthRequestCryptogram: string;
    /** The keyARN of the major encryption key that Amazon Web Services Payment Cryptography uses for ARQC verification. */
    KeyIdentifier: string;
    /** The method to use when deriving the major encryption key for ARQC verification within Amazon Web Services Payment Cryptography. The same key derivation mode was used for ARQC generation outside of Ama */
    MajorKeyDerivationMode: 'EMV_OPTION_A' | 'EMV_OPTION_B';
    /** The attributes and values to use for deriving a session key for ARQC verification within Amazon Web Services Payment Cryptography. The same attributes were used for ARQC generation outside of Amazon W */
    SessionKeyDerivationAttributes: any;
    /** The transaction data that Amazon Web Services Payment Cryptography uses for ARQC verification. The same transaction is used for ARQC generation outside of Amazon Web Services Payment Cryptography. */
    TransactionData: string;
    /** The attributes and values for auth request cryptogram verification. These parameters are required in case using ARPC Method 1 or Method 2 for ARQC verification. */
    AuthResponseAttributes?: {
        ArpcMethod1?: CryptogramVerificationArpcMethod1;
    } | {
        ArpcMethod2?: CryptogramVerificationArpcMethod2;
    };
}
export interface VerifyCardValidationDataInput {
    /** The keyARN of the CVK encryption key that Amazon Web Services Payment Cryptography uses to verify card data. */
    KeyIdentifier: string;
    /** The Primary Account Number (PAN), a unique identifier for a payment credit or debit card that associates the card with a specific account holder. */
    PrimaryAccountNumber: string;
    /** The CVV or CSC value for use for card data verification within Amazon Web Services Payment Cryptography. */
    ValidationData: string;
    /** The algorithm to use for verification of card data within Amazon Web Services Payment Cryptography. */
    VerificationAttributes: any;
}
export interface VerifyMacInput {
    /** The keyARN of the encryption key that Amazon Web Services Payment Cryptography uses to verify MAC data. */
    KeyIdentifier: string;
    /** The MAC being verified. */
    Mac: string;
    /** The data on for which MAC is under verification. This value must be hexBinary. */
    MessageData: string;
    /** The attributes and data values to use for MAC verification within Amazon Web Services Payment Cryptography. */
    VerificationAttributes: any;
    /** The length of the MAC. */
    MacLength?: number;
}
export interface VerifyPinDataInput {
    /** The encrypted PIN block data that Amazon Web Services Payment Cryptography verifies. */
    EncryptedPinBlock: string;
    /** The keyARN of the encryption key under which the PIN block data is encrypted. This key type can be PEK or BDK. */
    EncryptionKeyIdentifier: string;
    /** The PIN encoding format for pin data generation as specified in ISO 9564. Amazon Web Services Payment Cryptography supports ISO_Format_0 and ISO_Format_3. The ISO_Format_0 PIN block format is equivale */
    PinBlockFormat: 'ISO_FORMAT_0' | 'ISO_FORMAT_1' | 'ISO_FORMAT_3' | 'ISO_FORMAT_4';
    /** The attributes and values for PIN data verification. */
    VerificationAttributes: {
        VisaPin?: VisaPinVerification;
    } | {
        Ibm3624Pin?: Ibm3624PinVerification;
    };
    /** The keyARN of the PIN verification key. */
    VerificationKeyIdentifier: string;
    /** The attributes and values for the DUKPT encrypted PIN block data. */
    DukptAttributes?: DukptAttributes;
    EncryptionWrappedKey?: WrappedKey;
    /** The length of PIN being verified. */
    PinDataLength?: number;
    /** The Primary Account Number (PAN), a unique identifier for a payment credit or debit card that associates the card with a specific account holder. */
    PrimaryAccountNumber?: string;
}
/** Payment Cryptography Data service binding for Step Functions SDK integrations. */
export declare class PaymentCryptographyData {
    constructor();
    decryptData<T>(params: DecryptDataInput): Promise<T>;
    encryptData<T>(params: EncryptDataInput): Promise<T>;
    generateAs2805KekValidation<T>(params: GenerateAs2805KekValidationInput): Promise<T>;
    generateCardValidationData<T>(params: GenerateCardValidationDataInput): Promise<T>;
    generateMac<T>(params: GenerateMacInput): Promise<T>;
    generateMacEmvPinChange<T>(params: GenerateMacEmvPinChangeInput): Promise<T>;
    generatePinData<T>(params: GeneratePinDataInput): Promise<T>;
    reEncryptData<T>(params: ReEncryptDataInput): Promise<T>;
    translateKeyMaterial<T>(params: TranslateKeyMaterialInput): Promise<T>;
    translatePinData<T>(params: TranslatePinDataInput): Promise<T>;
    verifyAuthRequestCryptogram<T>(params: VerifyAuthRequestCryptogramInput): Promise<T>;
    verifyCardValidationData<T>(params: VerifyCardValidationDataInput): Promise<T>;
    verifyMac<T>(params: VerifyMacInput): Promise<T>;
    verifyPinData<T>(params: VerifyPinDataInput): Promise<T>;
}
//# sourceMappingURL=PaymentCryptographyData.d.ts.map