def METHOD_NAME(self, METHOD_NAME: str = "home", max_id: Optional[Union[Status, IdType, datetime]] = None, min_id: Optional[Union[Status, IdType, datetime]] = None, 
             since_id: Optional[Union[Status, IdType, datetime]] = None, limit: Optional[int] = None, only_media: bool = False, local: bool = False, 
             remote: bool = False) -> PaginatableList[Status]:
    """ 
    Fetch statuses, most recent ones first. `timeline` can be 'home', 'local', 'public',
    'tag/hashtag' or 'list/id'. See the following functions documentation for what those do.
    The default timeline is the "home" timeline.
    Specify `only_media` to only get posts with attached media. Specify `local` to only get local statuses,
    and `remote` to only get remote statuses. Some options are mutually incompatible as dictated by logic.
    May or may not require authentication depending on server settings and what is specifically requested.
    """
    if max_id is not None:
        max_id = self.__unpack_id(max_id, dateconv=True)
    if min_id is not None:
        min_id = self.__unpack_id(min_id, dateconv=True)
    if since_id is not None:
        since_id = self.__unpack_id(since_id, dateconv=True)
    params_initial = locals()
    if not local:
        del params_initial['local']
    if not remote:
        del params_initial['remote']
    if not only_media:
        del params_initial['only_media']
    if METHOD_NAME == "local":
        METHOD_NAME = "public"
        params_initial['local'] = True
    params = self.__generate_params(params_initial, ['timeline'])
    return self.__api_request('GET', f'/api/v1/timelines/{METHOD_NAME}', params)