例えばmomentを使う場合、scriptタグでmoment.jsを読み込んでいれば、
自分のjsではconsole.log(moment().format("YYYYMMDD hh:mm:ss"))みたいに使えます。
そのjsをtypescriptで書こうとした場合、moment()の定義が必要になります。
そこで@types/momentをインストールするわけですが、@typesはオワコンらしく、
実際にはmoment自体のパッケージもインストールされて、その中の定義ファイルが
参照されるようになります。
しかし、自分が使おうとしているmoment()は、トップレベルのwindow.moment()なわけですが、
定義ファイルでは、そのことが考慮されていないために定義を見つけられないようです。
(エラーは出ますが、anyとしてコンパイルはされます。)
その定義を見つけらるようにするおまじないが、export as namespace moment;のようです。

結局は、モジュールシステムに合わせた定義ファイルの書き方を
理解している人が少ないのだと思います。
export hogehoge とか export default hogehoge とか export = hogehogeとか
わけわかりません。