Add Typescript support