import React from 'react';
import { PaymentVendorFactoryEnum } from '../../../enums/paymentVendorFactoryEnum';
import { ICheckForm } from './vendorsForms/ICheckForm';
import { FiservForm } from './vendorsForms/FiservForm';
import { PaymentusForm } from './vendorsForms/PaymentusForm';
/**
 * useProviderForm
 *
 * @param {(PaymentTenderTypeEnum | undefined)} paymentMethod
 * @param {*} providerType
 * @param {*} providerProps
 * @param {(paymentFormResult: any) => void} onStatusChange
 * @return {*}  {*}
 */
export const usePaymentProviderForm = (paymentMethod, providerType, providerProps, onStatusChange, paymentDetails, data) => {
    switch (providerType) {
        case PaymentVendorFactoryEnum.ICheck:
            return (React.createElement(ICheckForm, Object.assign({ paymentMethod: paymentMethod, onStatusChange: onStatusChange, paymentDetails: paymentDetails, paymentData: data }, providerProps)));
        case PaymentVendorFactoryEnum.Fiserv:
            return (React.createElement(FiservForm, Object.assign({ paymentMethod: paymentMethod, onStatusChange: onStatusChange, paymentData: data }, providerProps)));
        case PaymentVendorFactoryEnum.Paymentus:
            return (React.createElement(PaymentusForm, Object.assign({ paymentMethod: paymentMethod, onStatusChange: onStatusChange, paymentDetails: paymentDetails, paymentData: data }, providerProps)));
        case PaymentVendorFactoryEnum.Stripe:
            // TODO: StripeForm component
            return React.createElement(React.Fragment, null);
        case PaymentVendorFactoryEnum.AuthorizeNet:
            // TODO: AuthorizeNet component
            return React.createElement(React.Fragment, null);
        default:
            return null;
    }
};
//# sourceMappingURL=usePaymentProviderForm.js.map