fix promise typescript interface