// @module: amd // @filename: file1.ts class foo {} namespace foo { export class A {} export namespace B { export let a; } } export = foo; // @filename: file2.ts import x = require("./file1"); x.B.b = 1; // OK - './file1' is a namespace declare module "./file1" { interface A { a: number } namespace B { export let b: number; } } // @filename: file3.ts import * as x from "./file1"; import "./file2"; let a: x.A; let b = a.a; let c = x.B.b;