def METHOD_NAME(
    search_filters: list[Union[ParenExpression, SearchFilter, str]]
) -> bool:
    """Return "True" if a scalar event search can be performed."""
    has_seen_varying_field = False
    for search_filter in search_filters:
        # String operators have no value here. We can skip them.
        if isinstance(search_filter, str):
            continue
        # ParenExpressions are recursive.  So we recursively call our own function and return early
        # if any of the fields fail.
        elif isinstance(search_filter, ParenExpression):
            is_ok = METHOD_NAME(search_filter.children)
            if not is_ok:
                return False
        else:
            name = search_filter.key.name
            # If the search-filter does not exist in either configuration then return false.
            if name not in static_search_config and name not in varying_search_config:
                return False
            if name in varying_search_config:
                # If a varying field has been seen before then we can't use a row-based sub-query. We
                # need to use an aggregation query to ensure the two values are found or not found
                # within the context of the aggregate replay.
                if has_seen_varying_field:
                    return False
                # Negated conditionals require knowledge of the aggregate state to determine if the
                # value truly does not exist in the aggregate replay result.
                if search_filter.operator in ("!=", "NOT IN"):
                    return False
                has_seen_varying_field = True
    # The set of filters are considered valid if the function did not return early.
    return True