```python
def digit_word(digit: int) -> str:
    """Returns the English word for a single digit."""
    if not 0 <= digit <= 9:
        raise ValueError("Input must be a digit between 0 and 9.")
    return str(digit)

def digit_words(digits: str) -> str:
    """Returns a string of the English words for each digit in the input string."""
    if not digits.isdigit():
        raise ValueError("Input must be a string of digits.")
    return ' '.join(digit_word(int(digit)) for digit in digits)
```