There’s a lot of other questions here that should be answered before you can get an answer to the original question! But to give a few examples:
If you’re targeting mobile, then your hardware constraints will typically be 2048x2048 maximum per texture, but you don’t want to reach that because you’ll quickly run out of memory. Typically 512x512 is the high end of the spectrum for textures on mobile devices, anything much higher than that is well beyond excessive.
For low end relatively modern desktops, 1024x1024 is going to be the high end of things. In general though, you’re probably not going to benefit a whole lot if you go very far past 2048x2048 in texture size.
There’s also a few tricks you can use to shave a bit of memory usage as well, like using lower resolution specular maps, and having the highest resolution texture be your normal map. These kinds of tricks will typically play upon your average person’s perception of surface detail. On some projects I’ve been on, I’ve found that people won’t notice much of a difference between a surface with a 1024x1024 normal map, a 512x512 color map, and a 256x256 specular map and a surface with all 1024x1024 texture maps. Of course, different surfaces will have different resolutions for its individual texture maps if you take this approach.