code: def model_components_param(silverkite):
      return ModelComponentsParam(
          seasonality={"fs_components_df": None},
          events=None,
          changepoints={
              "changepoints_dict": {
                  "method": "uniform",
                  "n_changepoints": 20,
              }
          },
          uncertainty={
              "uncertainty_dict": {
                  "uncertainty_method": "simple_conditional_residuals",
                  # `quantiles` is not provided, requires `config.coverage` to be set
                  # "params": {
                  #     "conditional_cols": ["dow_hr"],
                  #     "quantiles": [0.02, 0.98],
                  #     "quantile_estimation_method": "normal_fit",
                  #     "sample_size_thresh": 5,
                  #     "small_sample_size_method": "std_quantiles",
                  #     "small_sample_size_quantile": 0.98,
                  # }
              }
          },
          custom={
              "silverkite": silverkite,
              "extra_pred_cols": [
                  ["ct1"],
                  ["ct2"],
                  ["regressor1", "regressor3"],
              ],
              "max_admissible_value": 4,
          },
      )
  
imports: import dataclasses
  import datetime
  import warnings
  import numpy
  import pandas
  import pytest
  from greykite.algo.forecast.silverkite.forecast_silverkite import SilverkiteForecast
  from greykite.algo.forecast.silverkite.forecast_simple_silverkite_helper import generate_holiday_events
  from greykite.algo.forecast.silverkite.forecast_simple_silverkite_helper import get_event_pred_cols
  from greykite.common.constants import ADJUSTMENT_DELTA_COL
  from greykite.common.constants import END_TIME_COL
  from greykite.common.constants import METRIC_COL
  from greykite.common.constants import PREDICTION_BAND_COVERAGE
  from greykite.common.constants import START_TIME_COL
  from greykite.common.constants import TIME_COL
  from greykite.common.constants import VALUE_COL
  from greykite.common.evaluation import EvaluationMetricEnum
  from greykite.common.python_utils import assert_equal
  from greykite.common.testing_utils import generate_df_for_tests
  from greykite.common.testing_utils import generate_df_with_reg_for_tests
  from greykite.framework.constants import COMPUTATION_N_JOBS
  from greykite.framework.constants import CV_REPORT_METRICS_ALL
  from greykite.framework.templates.autogen.forecast_config import ComputationParam
  from greykite.framework.templates.autogen.forecast_config import EvaluationMetricParam
  from greykite.framework.templates.autogen.forecast_config import EvaluationPeriodParam
  from greykite.framework.templates.autogen.forecast_config import ForecastConfig
  from greykite.framework.templates.autogen.forecast_config import MetadataParam
  from greykite.framework.templates.autogen.forecast_config import ModelComponentsParam
  from greykite.framework.templates.forecaster import Forecaster
  from greykite.framework.templates.model_templates import ModelTemplateEnum
  from greykite.framework.templates.silverkite_template import SilverkiteTemplate
  from greykite.framework.templates.silverkite_template import apply_default_model_components
  from greykite.framework.templates.silverkite_template import get_extra_pred_cols
  from greykite.framework.utils.framework_testing_utils import assert_basic_pipeline_equal
  from greykite.framework.utils.framework_testing_utils import check_forecast_pipeline_result
  from greykite.sklearn.estimator.silverkite_estimator import SilverkiteEstimator
label_desc: Use image node_id 2 for calling a global function with example usage: model_components_param(silverkite) and returns: ModelComponentsParam