<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_available_types_for_scene(self, element):
 """Return a list of types that can be used in combination with the given element to add new reftracks to the scene. This allows for example the user, to add new reftracks (aliens) to the scene. So e.g. for a shader, it wouldn't make sense to make it available to be added to the scene, because one would use them only as children of let's say an asset or cache. Some types might only be available for shots or assets etc. :param element: the element that could be used in conjuction with the returned types to create new reftracks. :type element: :class:`jukeboxcore.djadapter.models.Asset` | :class:`jukeboxcore.djadapter.models.Shot` :returns: a list of types :rtype: :class:`list` :raises: None """

        available = []
        for typ, inter in self.types.items():
            if inter(self).is_available_for_scene(element):
                available.append(typ)
        return available