It would be helpful to projects using this library to be able to use mypy to ensure it's being used correctly. To do that, we'd need to annotate the types of the arguments and return values and add a `py.typed` marker to the module.