typescript api draft