def METHOD_NAME(
    series: TimeSeries, fill: Union[str, float] = "auto", **interpolate_kwargs
) -> TimeSeries:
    """
    Fills missing values in the provided time series
    Parameters
    ----------
    series
        The time series for which to fill missing values
    fill
        The value used to replace the missing values.
        If set to 'auto', will auto-fill missing values using the `pandas.Dataframe.interpolate()` method.
    interpolate_kwargs
        Keyword arguments for `pandas.Dataframe.interpolate()`, only used when fit is set to 'auto'.
        See `the documentation
        <https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.interpolate.html>`_
        for the list of supported parameters.
    Returns
    -------
    TimeSeries
        A new TimeSeries with all missing values filled according to the rules above.
    """
    raise_if_not(
        isinstance(fill, str) or isinstance(fill, float),
        "`fill` should either be a string or a float",
        logger,
    )
    raise_if(
        isinstance(fill, str) and fill != "auto",
        "invalid string for `fill`: can only be set to 'auto'",
        logger,
    )
    if fill == "auto":
        return _auto_fill(series, **interpolate_kwargs)
    return _const_fill(series, fill)