The OSCI TLM 1.0 standard used conventional C++ concepts of multiple inheritance. As shown in the `Toy ESL' materials and the example here, an SC_MODULE that implements an interface just inherits it.
SystemC 2.0 implemented an extension called sc_export that allows a parent module to inherit the interface of one of its children. This was a vital step needed in the common situation where the exporting module is not the top-level module of the component being wired-up.
However, TLM 1.0 had no standardised or recommended structure for payloads and no standardised timing annotation mechanisms.
There was also the problem of how to have multiple TLM ports on a component with same interface: e.g. a packet router.