My opinion is that you should have a ...
then within a
should be a
each object of the above list of objects should contain a
You should build a editing tool that lets you build a AnimatedSprite file.
Particularly to handle setting the collision areas for each frame of a sprite animation to name the outputed file or read one in. To define the name of a set of sprite animations in a sheet then defines were each sprite is and which frame it belongs to in the spritesheet as well as some way to manually define the bounding areas for that sprite frame by the user.
You should have a AnimatedSpriteReader Class that reads in a animated sprite file. Personally i would allow for the loading of images into the editor swapping of images into another spritesheet and allow for you to manually place boxes or polyhedron points per sprite in a animation for collision detection.
For the Animated sprite class proper it should have methods that check a animation for collisions at a specific frame fluidly, against a point, a list of points, a rectangle or sphere. It should have methods for large boundry checks, ones that surround the entire sprite, for quick collision culling and for more precise checks.
The class itself should contain methods for reading a file or writing a currently loaded file.
The editor should test the save methods against the application that reads them and both should use the AnimatedSprite class to either build or read sprites and there collisions.
The AnimatedSprite Class should hold all the method for accessing manipulating reading and writing a Animated Sprite.
This would be the proper way the way i see it. However this would also consume quite a bit of time and effort.