```python
def bump_release(version: str, part: str) -> str:
    if not isinstance(version, str) or not isinstance(part, str):
        raise ValueError("Invalid input: version must be a string and part must be a string.")
    
    components = version.split('.')
    if len(components) != 3:
        raise ValueError("Invalid version format: must be three dot-separated components.")
    
    if part not in ['major', 'minor', 'patch']:
        raise ValueError("Invalid part: must be 'major', 'minor', or 'patch'.")
    
    for component in components:
        if not component.isdigit() or (component[0] == '0' and len(component) > 1):
            raise ValueError("Invalid component: must be a non-negative integer with no leading zero.")
    
    major, minor, patch = map(int, components)
    
    if part == 'major':
        minor = 0
        patch = 0
    elif part == 'minor':
        patch = 0
    
    return f"{major}.{minor}.{patch}"
```