Open
Description
In order to encapsulate the logic around ProgressBars, we should have a ProgressBar interface.
For example, in the main package we could detect the interactivity of the shell once and use a no-op ProgressBar implementation to avoid that logic bleeding throughout the program. A real implementation of this interface would also cover the default behaviors like setting the MaxWidth
and what completed lines look like, etc...