Add TypeScript support