Is it possible to use generics with mapped types in order to map method types?
For example: can you create a mapped type in which you add a first argument of type number to every method? 
Pseudo code (won't work)
interface Method<TS extends any[], R> { 
  (...args: TS): R;
}
interface NumberedMethod<TS extends any[], R> { 
  (n: number, ...args: TS): R;
}
type Numbered<T> = {
  // ERROR! Can't use generics here??
  <TS extends any[], R>[K in keyof T]: T[K] extends NumberedMethod<TS, R>? T[K]: T[K] extends Method<TS, R>: NumberedMethod<TS, R>: never;
};
Is there any way in which this is possible?