```python
def base_amount(amount: int, unit: str, defs: dict, base: str) -> int:
    if isinstance(amount, bool) or not isinstance(amount, int) or amount < 0:
        raise ValueError("amount must be a non-negative integer")
    
    def find_factor(unit):
        if unit == base:
            return 1
        elif unit not in defs:
            raise ValueError(f"Unit '{unit}' is not defined.")
        
        factor, finer = defs[unit]
        if isinstance(factor, bool) or not isinstance(factor, int) or factor <= 0:
            raise ValueError("Factor must be a positive integer.")
        
        return find_factor(finer)
    
    try:
        return amount * find_factor(unit)
    except ValueError as e:
        raise e
```