Managed to answer this myself.
typing.Dict should be used to indicate a literal dict type with support for element type hinting i.e. Dict[bytes, str]
typing.Mapping is an object which defines the __getitem__,__len__,__iter__ magic methods
typing.MutableMapping is an object which defines same as Mapping but with __setitem__,__delitem__ magic methods as well.
typing.Mapping et al. are based on the abc types in this table