If your dog is actively straining to deliver a puppy for more than 20-25 minutes, or there is longer than an hour or so between puppies being born and you feel there are more puppies, she needs to be seen by a vet.
Sometimes puppies are too large to be born and get stuck. They can also experience uterine intertia and you need a visit to determine if a shot to restart labor is needed.
It isn't unusual for there to be from 10 minutes to an hour between puppies being born. So keep an eye on the clock and record the time each puppy is born so you can accurately judge when a vet visit may be needed.
It is possible for a mother to not deliver all her pups. Usually when a pup is retained, a dog does not act normal. They may appear restless, distressed, actively straining, lethargic, non-interested in their pups.
However, if your dog is eating, drinking, urinating, nursing her puppies, cleaning them and basically acting normal, she has most likely delivered all her puppies.
If you feel there is a puppy still inside your female, then you should take her to the Vet to be sure. It's a good idea to take her and the pups in anyway for a post whelping checkup to ensure all placentas were delivered as well. Pups that are "stuck" for long periods of time are rarely born alive. Your female may still be ok, but prolonged labor weakens a female.
Here is a site on this information.
She will bleed for about 3 more weeks, that is not unusual, but if she is still having contractions like she did during delivery, she needs to be seen by your vet. I hope you find this information helpful.