Yes, polynomial or rational function.  

But I don't see the point of passing hints here.  Those methods will be hit first, and it will just return (we know that for any rational function, ratint + poly is sufficient).  Furthermore, suppose new heuristics are added to speed up integrating rational functions, or heuristics to make the output simpler (e.g., along the lines of http://code.google.com/p/sympy/issues/detail?id=1280).  With it this way, they will not be called, even though there is no reason why they should be.