import re


def process_tweets(text: str) -> list[str]:
    """Returns a list of tokens from the text of the tweet after normalizing and tokenizing the
    text of the tweet.
    """
    text = text.lower()

    # Remove urls
    text = re.sub(r'http\S+|www\S+', '', text)
    # Remove user @ references and # from tweet
    text = re.sub(r'\@\w+|\#', '', text)
    # Remove punctuations that occur either start of the string or end-of-word
    # and "words" that contain only numbers and punctuations (like dates or time),
    # and condense all whitespaces to one whitespace
    text = re.sub(r'^[^A-Za-z]+|\b[^A-Za-z]+', '', text)
    # Tokenize by splitting by whitespaces
    list_of_words = text.split()

    return list_of_words