```python
def digit_word(digit: int) -> str:
    """Returns the English word for a given digit."""
    if not 0 <= digit <= 9:
        raise ValueError("Input must be a digit between 0 and 9.")
    return {0: "zero", 1: "one", 2: "two", 3: "three", 4: "four", 5: "five", 6: "six", 7: "seven", 8: "eight", 9: "nine"}[digit]

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