title: TypeScript export imported interface
body: <p>I use AMD modules and I want to hide a complex interface behind one file that loads several other files and chooses what to expose and how. It works, I use this solution but it feels kinda ugly, mostly with the interfaces. </p>
  
  <pre><code>import Types = require('./message-types');
  import MessageBaseImport = require('./message-base');
  export interface IMessage extends Types.IMessage {} // This is an interface
  export var MessageBase = MessageBaseImport; // This is a class
  </code></pre>
  
  <p>Usage:</p>
  
  <pre><code>import Message = require('message');
  import { * } as Message from 'message'; // Or with ES6 style
  var mb = new Message.MessageBase(); // Using the class
  var msg: Message.IMessage = null; // Using the interface 
  </code></pre>
  
  <p>Any better solutions out there? I don't want to put everything into a single file but I want to <code>import</code> a single file. </p>