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

// Copyright 2022 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_UTILS_H_
#define COMPONENTS_AUTOFILL_CORE_BROWSER_FORM_DATA_IMPORTER_UTILS_H_

#include <iterator>
#include <limits>
#include <list>
#include <optional>
#include <string>
#include <utility>

#include "base/time/time.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/country_type.h"
#include "components/autofill/core/browser/data_model/autofill_profile.h"
#include "components/autofill/core/browser/data_model/autofill_profile_comparator.h"
#include "components/autofill/core/browser/form_structure.h"
#include "components/autofill/core/common/autofill_clock.h"
#include "components/autofill/core/common/logging/log_buffer.h"
#include "components/autofill/core/common/signatures.h"
#include "components/history/core/browser/history_types.h"

namespace autofill {

// Encapsulates a list of Ts, ordered by the time they were added (newest
// first). All Ts share the same `origin`. This is useful for tracking
// relationships between submitted forms on the same origin, within a small
// period of time.
template <class T>
class TimestampedSameOriginQueue {};

// Stores recently submitted profile fragments, which are merged against future
// import candidates to construct a complete profile. This enables importing
// from multi-step import flows.
class MultiStepImportMerger {};

// Tracks which address and credit card forms were submitted in close temporal
// proximity.
class FormAssociator {};

}  // namespace autofill

#endif  // COMPONENTS_AUTOFILL_CORE_BROWSER_FORM_DATA_IMPORTER_UTILS_H_