Então para interface você usa para a definição das propriedades estáticas e métodos ao invés do retorno e o retorno você aplica o type?
Exemplo:
type RetornoType = {
dado1: string;
dado2: number;
};
interface TesteInterface {
meuMetodo: () => RetornoType;
}
class Teste implements TesteInterface {
meuMetodo(): RetornoType {
return {
dado1: 'oi',
dado2: 123,
};
}
}