type A = { (): string; } type B = { (a, b, c): number } type C = { (a: A, b: B): number }