```python
def plural_of(noun: str) -> str:
    """Return the plural of an English noun based on specific suffix rules."""
    if not noun:
        return ""
    
    last_char = noun[-1]
    
    if last_char in ('s', 'x', 'h', 'h'):
        # Check for 'ch' and 'sh' specifically, as 'h' alone is not a rule
        if noun.endswith(('ch', 'sh')):
            return noun + "es"
        # 's', 'x' take 'es'
        if last_char in ('s', 'x'):
            return noun + "es"
    
    if last_char == 'y':
        # Check if the character before 'y' is a consonant
        if len(noun) > 1:
            prev_char = noun[-2]
            if prev_char not in 'aeiou':
                return noun[:-1] + "ies"
    
    return noun + "s"
```