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
In my case particularly, I had to 'declare' the interface instead of exporting it.
declare interface IFluxStoreSyncOptions{
namespacedKey: string;
}
In order to use the interface as a type in another file like so:
export function FluxStoreSync(options: IFluxStoreSyncOptions){
}
This way you don't have to export and import the interface.