```python
def team_headcount(chart: dict, name: str) -> int:
    if not isinstance(chart, dict) or not isinstance(name, str):
        raise ValueError("Invalid input: chart must be a mapping and name must be a string.")
    if name not in chart:
        raise ValueError("Invalid input: name must be a key of the chart.")
    if not isinstance(chart[name], list):
        raise ValueError("Invalid input: reports must be a list.")
    if not all(isinstance(report, str) for report in chart[name]):
        raise ValueError("Invalid input: reports must be a list of strings.")
    
    def count_headcount(worker):
        if worker in chart:
            return 1 + sum(count_headcount(report) for report in chart[worker])
        return 0
    
    return count_headcount(name)
```