chromium/components/autofill/core/browser/form_data_importer.h

// Copyright 2017 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_AUTOFILL_CORE_BROWSER_FORM_DATA_IMPORTER_H_
#define COMPONENTS_AUTOFILL_CORE_BROWSER_FORM_DATA_IMPORTER_H_

#include <map>
#include <memory>
#include <optional>
#include <string>
#include <utility>

#include "base/containers/span.h"
#include "base/gtest_prod_util.h"
#include "base/memory/raw_ptr.h"
#include "base/scoped_observation.h"
#include "build/build_config.h"
#include "components/autofill/core/browser/address_data_manager.h"
#include "components/autofill/core/browser/autofill_profile_import_process.h"
#include "components/autofill/core/browser/form_data_importer_utils.h"
#include "components/autofill/core/browser/form_structure.h"
#include "components/history/core/browser/history_service_observer.h"

namespace history {
class HistoryService;
}  // namespace history

namespace autofill {

class AddressProfileSaveManager;
class AutofillClient;
class CreditCardSaveManager;
class IbanSaveManager;
class LocalCardMigrationManager;
class PaymentsDataManager;
enum class NonInteractivePaymentMethodType;

// Manages logic for importing address profiles and credit card information from
// web forms into the user's Autofill profile via the `AddressDataManager` and
// the `PaymentsDataManager`. Owned by `AutofillClient` implementations.
class FormDataImporter : public AddressDataManager::Observer,
                         public history::HistoryServiceObserver {};

}  // namespace autofill

#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_FORM_DATA_IMPORTER_H_