/**
* NOTE: This class is auto generated by DANA Indonesia.
* Do not edit the class manually.
*/
import type { ValidationErrorContext } from '../../../runtime';
import type { Money } from './Money';
import type { PayOptionAdditionalInfo } from './PayOptionAdditionalInfo';
/**
*
* @export
* @interface PayOptionDetail
*/
export interface PayOptionDetail {
/**
* Payment method that used to payment. The enums:
* * BALANCE - Payment method with balance
* * COUPON - Payment method with coupon
* * NET_BANKING - Payment method with internet banking
* * CREDIT_CARD - Payment method with credit card
* * DEBIT_CARD - Payment method with debit card
* * VIRTUAL_ACCOUNT - Payment method with virtual account
* * OTC - Payment method with OTC
* * DIRECT_DEBIT_CREDIT_CARD - Payment method with direct debit of credit card
* * DIRECT_DEBIT_DEBIT_CARD - Payment method with direct debit of debit card
* * ONLINE_CREDIT - Payment method with online Credit
* * LOAN_CREDIT - Payment method with DANA Cicil
* * NETWORK_PAY - Payment method with e-wallet
* * CARD - Payment method with card
*
* @type {string}
* @memberof PayOptionDetail
*/
payMethod: PayOptionDetailPayMethodEnum;
/**
* Payment option that available to used to payment, depends on the payment method. The enums:
* * NETWORK_PAY_PG_SPAY - Payment method with ShopeePay e-wallet
* * NETWORK_PAY_PG_OVO - Payment method with OVO e-wallet
* * NETWORK_PAY_PG_GOPAY - Payment method with GoPay e-wallet
* * NETWORK_PAY_PG_LINKAJA - Payment method with LinkAja e-wallet
* * NETWORK_PAY_PG_CARD - Payment method with Card
* * NETWORK_PAY_PG_QRIS - Payment method with QRIS
* * NETWORK_PAY_PL_INDODANA - Payment method with Paylater Indodana
* * NETWORK_PAY_PC_INDOMARET - Payment method with Indomaret
* * VIRTUAL_ACCOUNT_BCA - Payment method with BCA virtual account
* * VIRTUAL_ACCOUNT_BNI - Payment method with BNI virtual account
* * VIRTUAL_ACCOUNT_MANDIRI - Payment method with Mandiri virtual account
* * VIRTUAL_ACCOUNT_BSI_PAYMENT - Payment method with BSI virtual account
* * VIRTUAL_ACCOUNT_BRI - Payment method with BRI virtual account
* * VIRTUAL_ACCOUNT_BTPN - Payment method with BTPN virtual account
* * VIRTUAL_ACCOUNT_CIMB - Payment method with CIMB virtual account
* * VIRTUAL_ACCOUNT_PERMATA - Payment method with Permata virtual account
* * VIRTUAL_ACCOUNT_PANI - Payment method with Panin virtual account
*
* @type {string}
* @memberof PayOptionDetail
*/
payOption: PayOptionDetailPayOptionEnum;
/**
*
* @type {Money}
* @memberof PayOptionDetail
*/
transAmount: Money;
/**
*
* @type {Money}
* @memberof PayOptionDetail
*/
feeAmount?: Money;
/**
* Token that used for payment with card
* @type {string}
* @memberof PayOptionDetail
*/
cardToken?: string;
/**
* Merchant token used for this payment
* @type {string}
* @memberof PayOptionDetail
*/
merchantToken?: string;
/**
*
* @type {PayOptionAdditionalInfo}
* @memberof PayOptionDetail
*/
additionalInfo?: PayOptionAdditionalInfo;
}
/**
* @export
*/
export declare const PayOptionDetailPayMethodEnum: {
readonly Balance: "BALANCE";
readonly Coupon: "COUPON";
readonly NetBanking: "NET_BANKING";
readonly CreditCard: "CREDIT_CARD";
readonly DebitCard: "DEBIT_CARD";
readonly VirtualAccount: "VIRTUAL_ACCOUNT";
readonly Otc: "OTC";
readonly DirectDebitCreditCard: "DIRECT_DEBIT_CREDIT_CARD";
readonly DirectDebitDebitCard: "DIRECT_DEBIT_DEBIT_CARD";
readonly OnlineCredit: "ONLINE_CREDIT";
readonly LoanCredit: "LOAN_CREDIT";
readonly NetworkPay: "NETWORK_PAY";
readonly Card: "CARD";
};
export type PayOptionDetailPayMethodEnum = typeof PayOptionDetailPayMethodEnum[keyof typeof PayOptionDetailPayMethodEnum] | '';
/**
* @export
*/
export declare const PayOptionDetailPayOptionEnum: {
readonly NetworkPayPgSpay: "NETWORK_PAY_PG_SPAY";
readonly NetworkPayPgOvo: "NETWORK_PAY_PG_OVO";
readonly NetworkPayPgGopay: "NETWORK_PAY_PG_GOPAY";
readonly NetworkPayPgLinkaja: "NETWORK_PAY_PG_LINKAJA";
readonly NetworkPayPgCard: "NETWORK_PAY_PG_CARD";
readonly NetworkPayPgQris: "NETWORK_PAY_PG_QRIS";
readonly NetworkPayPlIndodana: "NETWORK_PAY_PL_INDODANA";
readonly NetworkPayPcIndomaret: "NETWORK_PAY_PC_INDOMARET";
readonly VirtualAccountBca: "VIRTUAL_ACCOUNT_BCA";
readonly VirtualAccountBni: "VIRTUAL_ACCOUNT_BNI";
readonly VirtualAccountMandiri: "VIRTUAL_ACCOUNT_MANDIRI";
readonly VirtualAccountBsiPayment: "VIRTUAL_ACCOUNT_BSI_PAYMENT";
readonly VirtualAccountBri: "VIRTUAL_ACCOUNT_BRI";
readonly VirtualAccountBtpn: "VIRTUAL_ACCOUNT_BTPN";
readonly VirtualAccountCimb: "VIRTUAL_ACCOUNT_CIMB";
readonly VirtualAccountPermata: "VIRTUAL_ACCOUNT_PERMATA";
readonly VirtualAccountPani: "VIRTUAL_ACCOUNT_PANI";
};
export type PayOptionDetailPayOptionEnum = typeof PayOptionDetailPayOptionEnum[keyof typeof PayOptionDetailPayOptionEnum] | '';
/**
* Check if a given object implements the PayOptionDetail interface.
*/
export declare function instanceOfPayOptionDetail(value: object): value is PayOptionDetail;
export declare function PayOptionDetailFromJSON(json: any): PayOptionDetail;
export declare function PayOptionDetailFromJSONTyped(json: any, ignoreDiscriminator: boolean): PayOptionDetail;
export declare function PayOptionDetailToJSON(json: any): PayOptionDetail;
export declare function PayOptionDetailToJSONTyped(value?: PayOptionDetail | null, ignoreDiscriminator?: boolean): any;
export declare function validatePayOptionDetail(value: PayOptionDetail): ValidationErrorContext[];