:param credit_card_psp_object: an instance representing the credit card in the psp
        :param amount: the amount to charge
        :param client_ref: a reference that will appear on the customer's credit card report
        :return: a tuple (success, payment_psp_object)

def charge_credit_card(self, credit_card_psp_object: Model, amount: Money, client_ref: str) -> Tuple[bool, Model]:
        """
        :param credit_card_psp_object: an instance representing the credit card in the psp
        :param amount: the amount to charge
        :param client_ref: a reference that will appear on the customer's credit card report
        :return: a tuple (success, payment_psp_object)
        """
        pass