Straight from the docs (http://emberjs.com/api/classes/Ember.run.html),
see the method debounce is defined thusly:
debounce (target, method, args*, wait, immediate): void
Even though the last two arguments are guaranteed, the variable
arguments in the middle means we can only ever type everything after
method as "...any".
This enables each definition to have a readme if necessary.
Also a .json metadata file to help with package managers.
And last, to have different versions of the definitions.