That's not reliable. The changesCount gets adjusted as the replication progresses, because the puller is streaming a list of changes from the server and adds them to its queue as they arrive. What you should do is look at the status property and watch for it to change to idle or stopped.
Note that an idle replicator is not a guarantee that everything in the db is completely consistent. It's possible (if unlikely) that another client is halfway through pushing a set of changes to the server, and your replicator pulled all of the changes so far and went idle, even though there are more changes to come once the other client sends them.
(In general, there is no notion of 'transactions' in a fully distributed system, so you don't get the kind of referential integrity that you may be used to in a relational database.)
—Jens