package com.linkedin.thirdeye.anomalydetection.function;
import com.linkedin.thirdeye.anomalydetection.model.data.DataModel;
import com.linkedin.thirdeye.anomalydetection.model.detection.DetectionModel;
import com.linkedin.thirdeye.anomalydetection.model.merge.MergeModel;
import com.linkedin.thirdeye.anomalydetection.model.prediction.PredictionModel;
import com.linkedin.thirdeye.anomalydetection.model.transform.TransformationFunction;
import java.util.List;
public interface ModularizedAnomalyFunctionModelProvider {
/**
* Returns the data model for retrieve current and training time series.
* @return a data model for retrieve current and training time series.
*/
DataModel getDataModel();
/**
* Returns the chain of transformation functions for current time series.
* @return a chain of transformation functions.
*/
List<TransformationFunction> getCurrentTimeSeriesTransformationChain();
/**
* Returns the chain of transformation functions for training time series (baselines).
* @return a chain of transformation functions.
*/
List<TransformationFunction> getBaselineTimeSeriesTransformationChain();
/**
* Returns the prediction model to be trained and used for forecasting.
* @return a prediction model to be trained and used for forecasting.
*/
PredictionModel getPredictionModel();
/**
* Returns the detection model for testing and detecting the anomalies in observerd time series.
* @return a detection model for testing and detecting the anomalies in observerd time series.
*/
DetectionModel getDetectionModel();
/**
* Returns the merge model for calculating score, weight, etc. of merged anomalies.
* @return a merge model for calculating score, weight, etc. of merged anomalies.
*/
MergeModel getMergeModel();
}