If you need the typedefs there, the only way I see them included is to either define as you do or inherit from something. Your class might use TypesKernel as base class, or they both could use a common base class that has nothing but the typedefs. (like in std::
framework for iterators).
However inheriting is not necessarily better, you might live with the duplication in many cases.