def METHOD_NAME(self) -> Optional[timedelta]:
    """Estimated remaining time to complete the transfer.
    Returns None (for infinity) if the current transfer speed is 0 bytes/s,
    or the remaining time is so long it would cause an OverflowError.
    """
    try:
        return timedelta(seconds=self.remaining / self.average_speed)
    except (ZeroDivisionError, OverflowError):
        return None