А типы api откуда возьмутся?
По идеи надо как для typescript генерить типовые-описания ко всем api
По хорошему да. Можно сделать динамический диспатчинг по ограниченному количеству апей, но у этого подхода много минусов. Лично я делю пакет на метаданные в в виде обобщенного дерева и бинарный payload, который интерпретируется на той стороне. Но разумеется, это хорошо только в очень ограниченном количестве случаев