chromium/third_party/blink/renderer/platform/widget/input/prediction/filter_factory.h

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

#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_WIDGET_INPUT_PREDICTION_FILTER_FACTORY_H_
#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_WIDGET_INPUT_PREDICTION_FILTER_FACTORY_H_

#include <unordered_map>

#include "base/feature_list.h"
#include "third_party/blink/renderer/platform/allow_discouraged_type.h"
#include "third_party/blink/renderer/platform/platform_export.h"
#include "third_party/blink/renderer/platform/widget/input/prediction/predictor_factory.h"
#include "ui/base/prediction/input_filter.h"

namespace blink {

namespace test {
class FilterFactoryTest;
}  // namespace test

namespace input_prediction {

enum class FilterType {};
}  // namespace input_prediction

// Structure used as key in the unordered_map to store different filter params
// in function of a trio {Filter, Predictor, Feature}
struct FilterParamMapKey {};

// Used to compute a hash value for FilterParamMapKey so it can be used as key
// in a hashmap
struct FilterParamMapKeyHash {};

FilterParams;
FilterParamsMap;

// FilterFactory is a class containing methods to create filters.
// It defines filters name and type constants. It also reads filter settings
// from fieldtrials if needed.
class PLATFORM_EXPORT FilterFactory {};
}  // namespace blink

#endif  // THIRD_PARTY_BLINK_RENDERER_PLATFORM_WIDGET_INPUT_PREDICTION_FILTER_FACTORY_H_