export interface Type extends Function { new (...args: any[]): T; } export type WithoutCallback = T extends any ? T extends [...infer U, infer C] ? C extends Function ? U : T : T : never;