For linear ones, there must be... what? Two points, and a direction? I'll limit the direction to straight lines (i.e. 0 degrees or 90 degrees).
Should be enough, nah?
I am not sure I understood you. What I am thinking for the linear gradients. Is to just define the direction (by degrees as you said). And just place that gradient inside that vector region. That way you wouldn't need to care if the vector is a square, a cyrcle, etc. This is the way both Illustrator and CorelDraw work.
Two suggestuins for the second way (with bitmaps).
1)I think you could make the bitmaps stretchable, so that we could just create a gradient in photoshop and then stretch it as we like in real-time in the preview panel.
2) You can make the vector regions to contain bitmaps. This way the vector region should work like a mask for the bitmap. So we can limit the bitmap in the regions we like in real-time again.