When using the TypeScript flavor of modules, imports are not used, because you define the required sources as references i.e.:
/// <reference path="another_file.ts" />
to work properly and you do not need any additional information to use it.
When using commonJS/AMD modules you need to use import statements because those are part of the loading work done by the environment (either node or requirejs/similar). import statement will be transformed to 'require' statements.
One can think of it as 'the old way' of doing modules in js: you order the scripts manually and you make sure objects used in moduleB and defined in moduleA have been loaded after moduleA. The 'new way' is providing information about the dependencies in
the module itself and use module loader that can understand and use this information to load your modules in the correct order.
For more details one can take a look at the demo applications, as various techniques for building are used there, demonstrating the various module patterns supported by the compiler.