The windows.winmd file contains the API definitions for the winrt APIs - these are directly applicable to all three languages, and they are machine readable.
As you mentioned in your comment, there are some slight differences based on how the language projection treats the types, but those transformations are strictly mechanical. For example, for Javascript, the projection changes are straightforward:
- Numeric types (int, float, double, etc) are projected as Number
- Strings are projected as String
- DateTime is projected as Date()
- Events are promoted as addEventListener("(event name)", eventHandler);
- If a method has multiple out parameters, the method returns an object whose property names match the names of the parameters to the method.
There are undoubtedly other Javascript mappings that I've missed, but those are the most important ones. The other currently supported languages (C++, C#, low level C++) have similar mechanical transformations that are applied to the metadata.