can needs-data be an array in drupal hook_token_info?
There is no type limit on needs-data. It all depends on how do you want to call token_replace(). On the other hand, it might be wise to use 'node' approach - when you provide node, you provide also user object of node's author, even if it is never provided or mentioned in needs-data explicitly.