```python
def layer_configs(layers: list[dict]) -> dict:
    if not isinstance(layers, list):
        raise ValueError("Input must be a list of dictionaries")
    
    result = {}
    
    for layer in layers:
        if not isinstance(layer, dict):
            raise ValueError("All layers must be dictionaries")
        
        for key, value in layer.items():
            if value is None:
                result.pop(key, None)
            elif isinstance(value, dict) and key in result and isinstance(result[key], dict):
                result[key] = layer_configs([result[key], value])
            else:
                result[key] = value
    
    return result
```