It think a simple macro that defines
Self
Superclass
Pointer
ConstPointer
can be applied nearly universally, would save errors in the definition of these, and would not obscure their definition since they are nearly universal.
Other typedefs are often not required or used, and they clutter the interface with irrelevant information. In most cases and for many typedef’s currently present, they do not need to be part of the public class interface, and they should be defined as they are used in the internal implementation.