There are two ways. You can make a sprite sheet, where each frame of animation is the same size and then you combine all the frames into one big image. So if each frame was 200 pixels by 400 pixels, you can make an image that is 2,000 pixels by 4,000 pixels, and that will give you 100 frames (10 x 10). This will work with a Sprite.
The other option is to use an AnimatedSprite. In this case, you can export each frame as it's own image, at whatever size you want, and then sequence it in the animation menu in Godot. This can be better for non-pixel sprites as sometimes they are not all the same size. Each animation should still have the same image dimensions, like for a walk cycle, all the frames should be the same size. But the jump, or run, or duck, animations can all be different size from the walk.
Collisions would be done separate from the art. So you have a base node (like a Node2D) that holds a Sprite, and also holds an Area2D or CollisionShape2D. For most stuff this is fine, and one shape is enough. But for some complex games (like fighting games that need hit boxes) you will need a more custom solution. But I would say for 80% of 2D games, using a rectangle or circle that is an approximation of the graphics will work good enough.