É possível declarar uma função que aceita uma matriz de instâncias de superclasse e retorna o tipo de subclasse mais específico

Estou escrevendo um arquivo de declarações Typcript para o meu pacote Javascrip

minha biblioteca possui uma função que aceita uma matriz de elementos da superclasse e retorna a superclass

function x(args: SuperClass[]): SuperClass

Gostaria de modificar o tipo de retorno do método para que ele retorne o tipo do elemento de subclasse mais específic

function x(args: SuperClass[]): TypeOfMostSpecificArg(args)

Por exempl

interface A {}
interface B extends A {}
interface C extends B {}
let a: A, b: B, c: C
x([]) // should have return type A
x([a, b, a]) // should have return type B
x([a, b, c]) // should have return type C

Isso é possível

questionAnswers(1)

yourAnswerToTheQuestion