#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_PAYMENTS_WINDOW_MANAGER_UTIL_H_
#define COMPONENTS_AUTOFILL_CORE_BROWSER_PAYMENTS_PAYMENTS_WINDOW_MANAGER_UTIL_H_
#include "base/functional/callback_forward.h"
#include "base/types/expected.h"
#include "components/autofill/core/browser/data_model/credit_card.h"
#include "components/autofill/core/browser/payments/card_unmask_challenge_option.h"
#include "components/autofill/core/browser/payments/payments_autofill_client.h"
#include "components/autofill/core/browser/payments/payments_network_interface.h"
#include "components/autofill/core/browser/payments/payments_window_manager.h"
namespace autofill {
class AutofillClient;
namespace payments {
base::expected<PaymentsWindowManager::RedirectCompletionResult,
PaymentsWindowManager::Vcn3dsAuthenticationPopupNonSuccessResult>
ParseUrlForVcn3ds(const GURL& url,
const Vcn3dsChallengeOptionMetadata& metadata);
PaymentsNetworkInterface::UnmaskRequestDetails
CreateUnmaskRequestDetailsForVcn3ds(
AutofillClient& client,
const PaymentsWindowManager::Vcn3dsContext& context,
PaymentsWindowManager::RedirectCompletionResult redirect_completion_result);
PaymentsWindowManager::Vcn3dsAuthenticationResponse
CreateVcn3dsAuthenticationResponse(
PaymentsAutofillClient::PaymentsRpcResult result,
const PaymentsNetworkInterface::UnmaskResponseDetails& response_details,
CreditCard card);
}
}
#endif