//@module: amd interface I1 { item:number; } module M1 { interface I1 { item:string; } interface I2 { item:number; } class C1 implements I1 { public item:number; } class C2 implements I1 { public item:string; } class C3 implements I2 { public item:number; } class C4 implements M2.I1 { public item:string; } class C5 implements M2.M3.I1 { public item:string; } } export module M2 { export interface I1 { item:string; } export interface I2 { item:string; } export module M3 { export interface I1 { item:string; } } class C1 implements I1 { public item:number; } class C2 implements I1 { public item:string; } class C3 implements I2 { public item:string; } } class C1 implements I1 { public item:number; } class C2 implements M2.I1 { public item:string; } class C3 implements M2.M3.I1 { public item:string; } interface I2 extends I1 { item:string; }