```python
def base_amount(amount: int, unit: str, defs: dict, base: str) -> int:
    if amount < 0 or not isinstance(amount, int):
        raise ValueError("Amount must be a non-negative whole number")
    if unit != base and unit not in defs:
        raise ValueError(f"Unit '{unit}' is neither the base nor defined in defs")
    if defs.get(base) is not None:
        raise ValueError(f"Defs entry for the base unit '{base}' itself should not exist")

    while unit != base:
        factor, finer = defs[unit]
        if not isinstance(factor, int) or factor <= 0:
            raise ValueError(f"Factor of unit '{unit}' must be a positive whole number")
        amount *= factor
        unit = finer

    return amount
```