=== tests/cases/compiler/privacyGloInterface.ts === module m1 { >m1 : typeof m1 export class C1_public { >C1_public : C1_public private f1() { >f1 : () => void } } class C2_private { >C2_private : C2_private } export interface C3_public { >C3_public : C3_public (c1: C1_public); >c1 : C1_public >C1_public : C1_public (c1: C2_private); >c1 : C2_private >C2_private : C2_private (): C1_public; >C1_public : C1_public (c2: number): C2_private; >c2 : number >C2_private : C2_private new (c1: C1_public); >c1 : C1_public >C1_public : C1_public new (c1: C2_private); >c1 : C2_private >C2_private : C2_private new (): C1_public; >C1_public : C1_public new (c2: number): C2_private; >c2 : number >C2_private : C2_private [c: number]: C1_public; >c : number >C1_public : C1_public [c: string]: C2_private; >c : string >C2_private : C2_private x: C1_public; >x : C1_public >C1_public : C1_public y: C2_private; >y : C2_private >C2_private : C2_private a?: C1_public; >a : C1_public >C1_public : C1_public b?: C2_private; >b : C2_private >C2_private : C2_private f1(a1: C1_public); >f1 : (a1: C1_public) => any >a1 : C1_public >C1_public : C1_public f2(a1: C2_private); >f2 : (a1: C2_private) => any >a1 : C2_private >C2_private : C2_private f3(): C1_public; >f3 : () => C1_public >C1_public : C1_public f4(): C2_private; >f4 : () => C2_private >C2_private : C2_private } interface C4_private { >C4_private : C4_private (c1: C1_public); >c1 : C1_public >C1_public : C1_public (c1: C2_private); >c1 : C2_private >C2_private : C2_private (): C1_public; >C1_public : C1_public (c2: number): C2_private; >c2 : number >C2_private : C2_private new (c1: C1_public); >c1 : C1_public >C1_public : C1_public new (c1: C2_private); >c1 : C2_private >C2_private : C2_private new (): C1_public; >C1_public : C1_public new (c2: number): C2_private; >c2 : number >C2_private : C2_private [c: number]: C1_public; >c : number >C1_public : C1_public [c: string]: C2_private; >c : string >C2_private : C2_private x: C1_public; >x : C1_public >C1_public : C1_public y: C2_private; >y : C2_private >C2_private : C2_private a?: C1_public; >a : C1_public >C1_public : C1_public b?: C2_private; >b : C2_private >C2_private : C2_private f1(a1: C1_public); >f1 : (a1: C1_public) => any >a1 : C1_public >C1_public : C1_public f2(a1: C2_private); >f2 : (a1: C2_private) => any >a1 : C2_private >C2_private : C2_private f3(): C1_public; >f3 : () => C1_public >C1_public : C1_public f4(): C2_private; >f4 : () => C2_private >C2_private : C2_private } } class C5_public { >C5_public : C5_public private f1() { >f1 : () => void } } interface C7_public { >C7_public : C7_public (c1: C5_public); >c1 : C5_public >C5_public : C5_public (): C5_public; >C5_public : C5_public new (c1: C5_public); >c1 : C5_public >C5_public : C5_public new (): C5_public; >C5_public : C5_public [c: number]: C5_public; >c : number >C5_public : C5_public x: C5_public; >x : C5_public >C5_public : C5_public a?: C5_public; >a : C5_public >C5_public : C5_public f1(a1: C5_public); >f1 : (a1: C5_public) => any >a1 : C5_public >C5_public : C5_public f3(): C5_public; >f3 : () => C5_public >C5_public : C5_public } module m3 { >m3 : any export interface m3_i_public { >m3_i_public : m3_i_public f1(): number; >f1 : () => number } interface m3_i_private { >m3_i_private : m3_i_private f2(): string; >f2 : () => string } interface m3_C1_private extends m3_i_public { >m3_C1_private : m3_C1_private >m3_i_public : m3_i_public } interface m3_C2_private extends m3_i_private { >m3_C2_private : m3_C2_private >m3_i_private : m3_i_private } export interface m3_C3_public extends m3_i_public { >m3_C3_public : m3_C3_public >m3_i_public : m3_i_public } export interface m3_C4_public extends m3_i_private { >m3_C4_public : m3_C4_public >m3_i_private : m3_i_private } interface m3_C5_private extends m3_i_private, m3_i_public { >m3_C5_private : m3_C5_private >m3_i_private : m3_i_private >m3_i_public : m3_i_public } export interface m3_C6_public extends m3_i_private, m3_i_public { >m3_C6_public : m3_C6_public >m3_i_private : m3_i_private >m3_i_public : m3_i_public } } interface glo_i_public { >glo_i_public : glo_i_public f1(): number; >f1 : () => number } interface glo_C3_public extends glo_i_public { >glo_C3_public : glo_C3_public >glo_i_public : glo_i_public }