=== tests/cases/conformance/internalModules/DeclarationMerging/TwoInternalModulesThatMergeEachWithExportedInterfacesOfTheSameName.ts === module A { >A : unknown export interface Point { >Point : Point x: number; >x : number y: number; >y : number toCarth(): Point; >toCarth : () => Point >Point : Point } } module A { >A : unknown export interface Point { >Point : Point fromCarth(): Point; >fromCarth : () => Point >Point : Point } } // ensure merges as expected var p: { x: number; y: number; toCarth(): A.Point; fromCarth(): A.Point; }; >p : { x: number; y: number; toCarth(): A.Point; fromCarth(): A.Point; } >x : number >y : number >toCarth : () => A.Point >A : unknown >Point : A.Point >fromCarth : () => A.Point >A : unknown >Point : A.Point var p: A.Point; >p : { x: number; y: number; toCarth(): A.Point; fromCarth(): A.Point; } >A : unknown >Point : A.Point module X.Y.Z { >X : unknown >Y : unknown >Z : unknown export interface Line { >Line : Line new (start: A.Point, end: A.Point); >start : A.Point >A : unknown >Point : A.Point >end : A.Point >A : unknown >Point : A.Point } } module X { >X : unknown export module Y.Z { >Y : unknown >Z : unknown export interface Line { >Line : Line start: A.Point; >start : A.Point >A : unknown >Point : A.Point end: A.Point; >end : A.Point >A : unknown >Point : A.Point } } } // ensure merges as expected var l: { start: A.Point; end: A.Point; new (s: A.Point, e: A.Point); } >l : { new (s: A.Point, e: A.Point): any; start: A.Point; end: A.Point; } >start : A.Point >A : unknown >Point : A.Point >end : A.Point >A : unknown >Point : A.Point >s : A.Point >A : unknown >Point : A.Point >e : A.Point >A : unknown >Point : A.Point var l: X.Y.Z.Line; >l : { new (s: A.Point, e: A.Point): any; start: A.Point; end: A.Point; } >X : unknown >Y : unknown >Z : unknown >Line : X.Y.Z.Line