Hmm, not sure why this line was written this way before...
GetAvailableMods() is a static member, `CModules::GetAvailableMods(ssUserMods)` would be less confusing.

See https://github.com/znc/znc/blob/master/include/znc/Modules.h#L1135 GetAvailableMods() returns list of modules which have the specified type (second parameter, UserModule by default).

As for your question, CModInfo structure contains list of types how this module may be loaded, see ModInfo.SupportsType()

Sorry for wrong previous answer about module types...