So the change by Ryan Cavanaugh did fix my issue, but in a roundabout way. My real issue was exactly as you would expect: node.d.ts was included more than once (as was express.d.ts). My file structure was something like this:
C:\Project
-node.d.ts
\public
-main.ts
\definitions
-node.d.ts
So naturally, in my main.ts file, I included definitions/node.d.ts. But somehow, node (or probably tsc) was automatically including the node.d.ts file that was one directly higher than main.ts. I don't know how, and it still confuses the hell out of me, but that was the issue.