In-progress work for updating docs and typings across the entire codebase
The notes which will be used for writing the documentation later are available here