chromium/components/sync/service/sync_client.h

// Copyright 2015 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_SYNC_SERVICE_SYNC_CLIENT_H_
#define COMPONENTS_SYNC_SERVICE_SYNC_CLIENT_H_

#include <map>

#include "base/files/file_path.h"
#include "base/functional/callback_forward.h"
#include "base/memory/ref_counted.h"
#include "components/sync/base/data_type.h"
#include "components/sync/base/extensions_activity.h"

class PrefService;

namespace signin {
class IdentityManager;
}

namespace trusted_vault {
class TrustedVaultClient;
}

namespace syncer {

struct LocalDataDescription;
class SyncEngineFactory;
class SyncInvalidationsService;
class TrustedVaultAutoUpgradeSyntheticFieldTrialGroup;

// Interface for clients of the Sync API to plumb through necessary dependent
// components. This interface is purely for abstracting dependencies, and
// should not contain any non-trivial functional logic.
//
// Note: on some platforms, getters might return nullptr. Callers are expected
// to handle these scenarios gracefully.
class SyncClient {};

}  // namespace syncer

#endif  // COMPONENTS_SYNC_SERVICE_SYNC_CLIENT_H_