import type { ConvertTransAmount, ConvertTransFXRate, EvoTransInfoResponse, MerchantOrderInfoResponse, MerchantTransInfoResponse, PspTransInfoResponse, Result, TransAmount } from './base';
/**
 * Response message for {@link LinkPayAPI.retrievePayment} API
 */
export declare class RetrievePaymentResponse {
    /** Result object */
    result: Result;
    /** Merchant order information object */
    merchantOrderInfo?: MerchantOrderInfoResponse;
    /** Transaction information object */
    transactionInfo?: TransactionInfoResponse;
    /** Payment method object */
    paymentMethod?: PaymentMethod;
}
export interface TransactionInfoResponse {
    /** Merchant transaction information object */
    merchantTransInfo: MerchantTransInfoResponse;
    /** EVO Cloud transaction information object */
    evoTransInfo?: EvoTransInfoResponse;
    /** PSP transaction information object */
    pspTransInfo?: PspTransInfoResponse;
    /** Transaction amount object
     * Same as in the LinkPay request. */
    transAmount?: TransAmount;
    /**
     * user billing amount object
     * Return when PSP responds.
     */
    billingAmount?: BillingAmount;
    /** The billing FX rate object between transaction amount to billing amount */
    billingFXRate?: BillingFXRate;
    /** Reserved */
    convertTransAmount?: ConvertTransAmount;
    /** Reserved */
    convertTransFXRate?: ConvertTransFXRate;
}
export interface BillingAmount {
    /** The three-character currency code as defined in ISO-4217. For example: SGD */
    currency: string;
    /** The amount with a major unit. For example: 24.68 */
    value: string;
}
export interface BillingFXRate {
    /** The FX rate value with decimal. For example: 0.2011541 */
    value: string;
    /**
     * The currency of the transAmount.
        The three-character currency code as defined in ISO-4217.
        For example: CNY
     */
    baseCurrency: string;
    /**
     * The currency of the billingAmount.
        The three-character currency code as defined in ISO-4217.
        For example: SGD
     */
    quoteCurrency: string;
    /** The source of the FX rate. For example: JCB */
    source?: string;
    /** The date of the FX rate with the format YYYYMMDD. For example: 20200518 */
    date?: string;
}
export interface PaymentMethod {
    /**
     * The payment method type that the user uses. Possible values are shown
        as below:
        “card”, “e-wallet”, “points”, “onlineBanking”, “bankTransfer”,
        “buyNowPayLater”, “carrierBilling”, “cash”, “prepaidCard”.
     */
    type: string;
    /**
     * This is to indicate the sub Payment Method of a transaction.
     *
     * - Value defined
        Refer to Appendix 9.2.
       - Usage Instruction
        1. All values are applied in response from EVO Cloud
        2. Field Type: String(32)
     */
    paymentMethodVariant?: string;
    /**
     * Card information object
     * Returned when paymentMethod.type=card
     */
    cardInfo?: CardInfo;
    /**
     * E-wallet information object
        Returned when paymentMethod.type=e-wallet
     */
    ['e-walletInfo']?: EWalletInfo;
    /**
     * Online Banking information object
        Returned when paymentMethod.type=onlineBanking
     */
    onlineBankingInfo?: OnlineBankingInfo;
    /**
     * Points information object
        Returned when paymentMethod.type=points
     */
    pointsInfo?: PointsInfo;
    /**
     * Bank Transfer information object
        Returned when paymentMethod.type=bankTransfer.
     */
    bankTransferInfo?: BankTransferInfo;
    /**
     * Buy Now Pay Later information object
        Returned when paymentMethod.type=buyNowPayLater.
     */
    buyNowPayLaterInfo?: BuyNowPayLaterInfo;
    /**
     * Carrier Billing information object
        Returned when paymentMethod.type=carrierBilling.
     */
    carrierBillingInfo?: CarrierBillingInfo;
    /**
     * Cash information object
        Returned when paymentMethod.type=cash.
     */
    cashInfo?: CashInfo;
    /**
     * Prepaid Card information object
        Returned when paymentMethod.type=prepaidCard.
     */
    prepaidCardInfo?: PrepaidCardInfo;
}
export interface PrepaidCardInfo {
    /**
     * This is to indicate the payment brand of Prepaid Card.
        - Value defined
  
        Refer to the paymentBrands corresponding to “prepaidCard” in Appendix 9.1.
     */
    paymentBrand?: string;
}
export interface CashInfo {
    /**
     * This is to indicate the payment brand of Cash.
        - Value defined
  
        Refer to the paymentBrands corresponding to “cash” in Appendix 9.1.
     */
    paymentBrand?: string;
}
export interface CarrierBillingInfo {
    /**
     * This is to indicate the payment brand of Carrier Billing.
        - Value defined
  
        Refer to the paymentBrands corresponding to “carrierBilling” in Appendix 9.1.
     */
    paymentBrand?: string;
}
export interface BuyNowPayLaterInfo {
    /**
     * This is to indicate the payment brand of Buy Now Pay Later.
        - Value defined
  
        Refer to the paymentBrands corresponding to “buyNowPayLater” in Appendix 9.1.
     */
    paymentBrand?: string;
}
export interface PointsInfo {
    /**
     * This is to indicate the payment brand of Points.
        - Value defined
  
        Refer to the paymentBrands corresponding to “points” in Appendix 9.1.
     */
    paymentBrand?: string;
}
export interface BankTransferInfo {
    /**
     * This is to indicate the payment brand of Bank Transfer.
        - Value defined
  
        Refer to the paymentBrands corresponding to “bankTransfer” in Appendix 9.1.
     */
    paymentBrand?: string;
    /** This is to indicate the account number of debit account. */
    accountNumber?: string;
}
export interface CardInfo {
    /** The first 6 digits of the card number to be returned when pay by card. */
    first6No: string;
    /** The last 4 digits of the card number to be returned when pay by card. */
    last4No: string;
    /**
     * This is to indicate the payment brand of Card.
      
    - Value defined
  
      Refer to the paymentBrands corresponding to “card” in Appendix 9.1.
     */
    paymentBrand?: string;
    /**
     * The funding type “credit”, “debit”, “prepaid”
     */
    fundingType?: string;
    /** The name of the cardholder. */
    holderName?: string;
    /** The name of the issuing bank. */
    issuingBank?: string;
    /** The country of the issuing bank. Follow the standard of ISO-3166-1 alpha-3. */
    issuingCountry?: string;
    /**
     * The country of the cardholder. Follow the standard of ISO-3166-1 alpha-3
     */
    issuerCountry?: string;
    /** Indicate whether it is a commercial card. */
    isCommercial?: boolean;
}
export interface EWalletInfo {
    /**
     * This is to indicate the payment brand of E-wallet.
        - Value defined
        
        Refer to the paymentBrands corresponding to “e-wallet” in Appendix 9.1.
     */
    paymentBrand?: string;
    /** The user’s e-wallet account ID. */
    consumerId?: string;
    /** The user’s e-wallet account name. */
    consumerAccount?: string;
}
export interface OnlineBankingInfo {
    /**
     * This is to indicate the payment brand of Online Banking.
        - Value defined
  
        Refer to the paymentBrands corresponding to “onlineBanking” in Appendix 9.1.
     */
    paymentBrand?: string;
}
export default RetrievePaymentResponse;
