I don't like this signature for two main reasons.

1. The callback should always be the final parameter. I understand that silent is optional, but you already massage the parameters how you want, so I don't think this is an issue.
2. silent should be wrapped into an object so that adding parameters is easier in the future.