==== tests/cases/compiler/privacyImport.ts (137 errors) ====
    export module m1 {
        export module m1_M1_public {
            export class c1 {
            }
            export function f1() {
                return new c1;
            }
            export var v1 = c1;
            export var v2: c1;
        }
    
        module m1_M2_private {
            export class c1 {
            }
            export function f1() {
                return new c1;
            }
            export var v1 = c1;
            export var v2: c1;
        }
    
        export declare module "m1_M3_public" {
                              ~~~~~~~~~~~~~~
!!! privacyImport.ts(22,27): error TS2195: Ambient external module declaration must be defined in global context.
            export function f1();
            export class c1 {
            }
            export var v1: { new (): c1; };
            export var v2: c1;
        }
    
        declare module "m1_M4_private" {
                       ~~~~~~~~~~~~~~~
!!! privacyImport.ts(30,20): error TS2195: Ambient external module declaration must be defined in global context.
            export function f1();
            export class c1 {
            }
            export var v1: { new (): c1; };
            export var v2: c1;
        }
    
        import m1_im1_private = m1_M1_public;
        export var m1_im1_private_v1_public = m1_im1_private.c1;
        export var m1_im1_private_v2_public = new m1_im1_private.c1();
        export var m1_im1_private_v3_public = m1_im1_private.f1;
        export var m1_im1_private_v4_public = m1_im1_private.f1();
        var m1_im1_private_v1_private = m1_im1_private.c1;
        var m1_im1_private_v2_private = new m1_im1_private.c1();
        var m1_im1_private_v3_private = m1_im1_private.f1;
        var m1_im1_private_v4_private = m1_im1_private.f1();
    
    
        import m1_im2_private = m1_M2_private;
        export var m1_im2_private_v1_public = m1_im2_private.c1;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(50,16): error TS2027: Exported variable 'm1_im2_private_v1_public' has or is using private type 'm1_M2_private.c1'.
        export var m1_im2_private_v2_public = new m1_im2_private.c1();
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(51,16): error TS2027: Exported variable 'm1_im2_private_v2_public' has or is using private type 'm1_M2_private.c1'.
        export var m1_im2_private_v3_public = m1_im2_private.f1;
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(52,16): error TS2027: Exported variable 'm1_im2_private_v3_public' has or is using private type 'm1_M2_private.f1'.
        export var m1_im2_private_v4_public = m1_im2_private.f1();
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(53,16): error TS2027: Exported variable 'm1_im2_private_v4_public' has or is using private type 'm1_M2_private.c1'.
        var m1_im2_private_v1_private = m1_im2_private.c1;
        var m1_im2_private_v2_private = new m1_im2_private.c1();
        var m1_im2_private_v3_private = m1_im2_private.f1;
        var m1_im2_private_v4_private = m1_im2_private.f1();
    
        import m1_im3_private = require("m1_M3_public");
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(59,5): error TS2136: Import declarations in an internal module cannot reference an external module.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(59,5): error TS2071: Unable to resolve external module '"m1_M3_public"'.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(59,5): error TS2072: Module cannot be aliased to a non-module type.
        export var m1_im3_private_v1_public = m1_im3_private.c1;
                                              ~~~~~~~~~~~~~~
!!! privacyImport.ts(60,43): error TS2095: Could not find symbol 'm1_im3_private'.
        export var m1_im3_private_v2_public = new m1_im3_private.c1();
                                                  ~~~~~~~~~~~~~~
!!! privacyImport.ts(61,47): error TS2095: Could not find symbol 'm1_im3_private'.
        export var m1_im3_private_v3_public = m1_im3_private.f1;
                                              ~~~~~~~~~~~~~~
!!! privacyImport.ts(62,43): error TS2095: Could not find symbol 'm1_im3_private'.
        export var m1_im3_private_v4_public = m1_im3_private.f1();
                                              ~~~~~~~~~~~~~~
!!! privacyImport.ts(63,43): error TS2095: Could not find symbol 'm1_im3_private'.
        var m1_im3_private_v1_private = m1_im3_private.c1;
                                        ~~~~~~~~~~~~~~
!!! privacyImport.ts(64,37): error TS2095: Could not find symbol 'm1_im3_private'.
        var m1_im3_private_v2_private = new m1_im3_private.c1();
                                            ~~~~~~~~~~~~~~
!!! privacyImport.ts(65,41): error TS2095: Could not find symbol 'm1_im3_private'.
        var m1_im3_private_v3_private = m1_im3_private.f1;
                                        ~~~~~~~~~~~~~~
!!! privacyImport.ts(66,37): error TS2095: Could not find symbol 'm1_im3_private'.
        var m1_im3_private_v4_private = m1_im3_private.f1();
                                        ~~~~~~~~~~~~~~
!!! privacyImport.ts(67,37): error TS2095: Could not find symbol 'm1_im3_private'.
    
        import m1_im4_private = require("m1_M4_private");
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(69,5): error TS2136: Import declarations in an internal module cannot reference an external module.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(69,5): error TS2071: Unable to resolve external module '"m1_M4_private"'.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(69,5): error TS2072: Module cannot be aliased to a non-module type.
        export var m1_im4_private_v1_public = m1_im4_private.c1;
                                              ~~~~~~~~~~~~~~
!!! privacyImport.ts(70,43): error TS2095: Could not find symbol 'm1_im4_private'.
        export var m1_im4_private_v2_public = new m1_im4_private.c1();
                                                  ~~~~~~~~~~~~~~
!!! privacyImport.ts(71,47): error TS2095: Could not find symbol 'm1_im4_private'.
        export var m1_im4_private_v3_public = m1_im4_private.f1;
                                              ~~~~~~~~~~~~~~
!!! privacyImport.ts(72,43): error TS2095: Could not find symbol 'm1_im4_private'.
        export var m1_im4_private_v4_public = m1_im4_private.f1();
                                              ~~~~~~~~~~~~~~
!!! privacyImport.ts(73,43): error TS2095: Could not find symbol 'm1_im4_private'.
        var m1_im4_private_v1_private = m1_im4_private.c1;
                                        ~~~~~~~~~~~~~~
!!! privacyImport.ts(74,37): error TS2095: Could not find symbol 'm1_im4_private'.
        var m1_im4_private_v2_private = new m1_im4_private.c1();
                                            ~~~~~~~~~~~~~~
!!! privacyImport.ts(75,41): error TS2095: Could not find symbol 'm1_im4_private'.
        var m1_im4_private_v3_private = m1_im4_private.f1;
                                        ~~~~~~~~~~~~~~
!!! privacyImport.ts(76,37): error TS2095: Could not find symbol 'm1_im4_private'.
        var m1_im4_private_v4_private = m1_im4_private.f1();
                                        ~~~~~~~~~~~~~~
!!! privacyImport.ts(77,37): error TS2095: Could not find symbol 'm1_im4_private'.
    
        export import m1_im1_public = m1_M1_public;
        export import m1_im2_public = m1_M2_private;
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(80,5): error TS2182: Exported import declaration 'm1_im2_public' is assigned value with type that is using inaccessible module 'm1_M2_private'.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(80,5): error TS2185: Exported import declaration 'm1_im2_public' is assigned container that is or is using inaccessible module 'm1_M2_private'.
        export import m1_im3_public = require("m1_M3_public");
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(81,5): error TS2136: Import declarations in an internal module cannot reference an external module.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(81,5): error TS2071: Unable to resolve external module '"m1_M3_public"'.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(81,5): error TS2072: Module cannot be aliased to a non-module type.
        export import m1_im4_public = require("m1_M4_private");
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(82,5): error TS2136: Import declarations in an internal module cannot reference an external module.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(82,5): error TS2071: Unable to resolve external module '"m1_M4_private"'.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(82,5): error TS2072: Module cannot be aliased to a non-module type.
    }
    
    module m2 {
        export module m2_M1_public {
            export class c1 {
            }
            export function f1() {
                return new c1;
            }
            export var v1 = c1;
            export var v2: c1;
        }
    
        module m2_M2_private {
            export class c1 {
            }
            export function f1() {
                return new c1;
            }
            export var v1 = c1;
            export var v2: c1;
        }
    
        export declare module "m2_M3_public" {
                              ~~~~~~~~~~~~~~
!!! privacyImport.ts(106,27): error TS2195: Ambient external module declaration must be defined in global context.
            export function f1();
            export class c1 {
            }
            export var v1: { new (): c1; };
            export var v2: c1;
        }
    
        declare module "m2_M4_private" {
                       ~~~~~~~~~~~~~~~
!!! privacyImport.ts(114,20): error TS2195: Ambient external module declaration must be defined in global context.
            export function f1();
            export class c1 {
            }
            export var v1: { new (): c1; };
            export var v2: c1;
        }
    
        import m1_im1_private = m2_M1_public;
        export var m1_im1_private_v1_public = m1_im1_private.c1;
        export var m1_im1_private_v2_public = new m1_im1_private.c1();
        export var m1_im1_private_v3_public = m1_im1_private.f1;
        export var m1_im1_private_v4_public = m1_im1_private.f1();
        var m1_im1_private_v1_private = m1_im1_private.c1;
        var m1_im1_private_v2_private = new m1_im1_private.c1();
        var m1_im1_private_v3_private = m1_im1_private.f1;
        var m1_im1_private_v4_private = m1_im1_private.f1();
    
    
        import m1_im2_private = m2_M2_private;
        export var m1_im2_private_v1_public = m1_im2_private.c1;
        export var m1_im2_private_v2_public = new m1_im2_private.c1();
        export var m1_im2_private_v3_public = m1_im2_private.f1;
        export var m1_im2_private_v4_public = m1_im2_private.f1();
        var m1_im2_private_v1_private = m1_im2_private.c1;
        var m1_im2_private_v2_private = new m1_im2_private.c1();
        var m1_im2_private_v3_private = m1_im2_private.f1;
        var m1_im2_private_v4_private = m1_im2_private.f1();
    
        import m1_im3_private = require("m2_M3_public");
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(143,5): error TS2136: Import declarations in an internal module cannot reference an external module.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(143,5): error TS2071: Unable to resolve external module '"m2_M3_public"'.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(143,5): error TS2072: Module cannot be aliased to a non-module type.
        export var m1_im3_private_v1_public = m1_im3_private.c1;
                                              ~~~~~~~~~~~~~~
!!! privacyImport.ts(144,43): error TS2095: Could not find symbol 'm1_im3_private'.
        export var m1_im3_private_v2_public = new m1_im3_private.c1();
                                                  ~~~~~~~~~~~~~~
!!! privacyImport.ts(145,47): error TS2095: Could not find symbol 'm1_im3_private'.
        export var m1_im3_private_v3_public = m1_im3_private.f1;
                                              ~~~~~~~~~~~~~~
!!! privacyImport.ts(146,43): error TS2095: Could not find symbol 'm1_im3_private'.
        export var m1_im3_private_v4_public = m1_im3_private.f1();
                                              ~~~~~~~~~~~~~~
!!! privacyImport.ts(147,43): error TS2095: Could not find symbol 'm1_im3_private'.
        var m1_im3_private_v1_private = m1_im3_private.c1;
                                        ~~~~~~~~~~~~~~
!!! privacyImport.ts(148,37): error TS2095: Could not find symbol 'm1_im3_private'.
        var m1_im3_private_v2_private = new m1_im3_private.c1();
                                            ~~~~~~~~~~~~~~
!!! privacyImport.ts(149,41): error TS2095: Could not find symbol 'm1_im3_private'.
        var m1_im3_private_v3_private = m1_im3_private.f1;
                                        ~~~~~~~~~~~~~~
!!! privacyImport.ts(150,37): error TS2095: Could not find symbol 'm1_im3_private'.
        var m1_im3_private_v4_private = m1_im3_private.f1();
                                        ~~~~~~~~~~~~~~
!!! privacyImport.ts(151,37): error TS2095: Could not find symbol 'm1_im3_private'.
    
        import m1_im4_private = require("m2_M4_private");
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(153,5): error TS2136: Import declarations in an internal module cannot reference an external module.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(153,5): error TS2071: Unable to resolve external module '"m2_M4_private"'.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(153,5): error TS2072: Module cannot be aliased to a non-module type.
        export var m1_im4_private_v1_public = m1_im4_private.c1;
                                              ~~~~~~~~~~~~~~
!!! privacyImport.ts(154,43): error TS2095: Could not find symbol 'm1_im4_private'.
        export var m1_im4_private_v2_public = new m1_im4_private.c1();
                                                  ~~~~~~~~~~~~~~
!!! privacyImport.ts(155,47): error TS2095: Could not find symbol 'm1_im4_private'.
        export var m1_im4_private_v3_public = m1_im4_private.f1;
                                              ~~~~~~~~~~~~~~
!!! privacyImport.ts(156,43): error TS2095: Could not find symbol 'm1_im4_private'.
        export var m1_im4_private_v4_public = m1_im4_private.f1();
                                              ~~~~~~~~~~~~~~
!!! privacyImport.ts(157,43): error TS2095: Could not find symbol 'm1_im4_private'.
        var m1_im4_private_v1_private = m1_im4_private.c1;
                                        ~~~~~~~~~~~~~~
!!! privacyImport.ts(158,37): error TS2095: Could not find symbol 'm1_im4_private'.
        var m1_im4_private_v2_private = new m1_im4_private.c1();
                                            ~~~~~~~~~~~~~~
!!! privacyImport.ts(159,41): error TS2095: Could not find symbol 'm1_im4_private'.
        var m1_im4_private_v3_private = m1_im4_private.f1;
                                        ~~~~~~~~~~~~~~
!!! privacyImport.ts(160,37): error TS2095: Could not find symbol 'm1_im4_private'.
        var m1_im4_private_v4_private = m1_im4_private.f1();
                                        ~~~~~~~~~~~~~~
!!! privacyImport.ts(161,37): error TS2095: Could not find symbol 'm1_im4_private'.
    
        // Parse error to export module
        export import m1_im1_public = m2_M1_public;
        export import m1_im2_public = m2_M2_private;
        export import m1_im3_public = require("m2_M3_public");
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(166,5): error TS2136: Import declarations in an internal module cannot reference an external module.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(166,5): error TS2071: Unable to resolve external module '"m2_M3_public"'.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(166,5): error TS2072: Module cannot be aliased to a non-module type.
        export import m1_im4_public = require("m2_M4_private");
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(167,5): error TS2136: Import declarations in an internal module cannot reference an external module.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(167,5): error TS2071: Unable to resolve external module '"m2_M4_private"'.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(167,5): error TS2072: Module cannot be aliased to a non-module type.
    }
    
    export module glo_M1_public {
        export class c1 {
        }
        export function f1() {
            return new c1;
        }
        export var v1 = c1;
        export var v2: c1;
    }
    
    export declare module "glo_M2_public" {
                          ~~~~~~~~~~~~~~~
!!! privacyImport.ts(180,23): error TS2195: Ambient external module declaration must be defined in global context.
        export function f1();
        export class c1 {
        }
        export var v1: { new (): c1; };
        export var v2: c1;
    }
    
    export module glo_M3_private {
        export class c1 {
        }
        export function f1() {
            return new c1;
        }
        export var v1 = c1;
        export var v2: c1;
    }
    
    export declare module "glo_M4_private" {
                          ~~~~~~~~~~~~~~~~
!!! privacyImport.ts(198,23): error TS2195: Ambient external module declaration must be defined in global context.
        export function f1();
        export class c1 {
        }
        export var v1: { new (): c1; };
        export var v2: c1;
    }
    
    
    import glo_im1_private = glo_M1_public;
    export var glo_im1_private_v1_public = glo_im1_private.c1;
    export var glo_im1_private_v2_public = new glo_im1_private.c1();
    export var glo_im1_private_v3_public = glo_im1_private.f1;
    export var glo_im1_private_v4_public = glo_im1_private.f1();
    var glo_im1_private_v1_private = glo_im1_private.c1;
    var glo_im1_private_v2_private = new glo_im1_private.c1();
    var glo_im1_private_v3_private = glo_im1_private.f1;
    var glo_im1_private_v4_private = glo_im1_private.f1();
    
    
    import glo_im2_private = require("glo_M2_public");
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(218,1): error TS2071: Unable to resolve external module '"glo_M2_public"'.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(218,1): error TS2072: Module cannot be aliased to a non-module type.
    export var glo_im2_private_v1_public = glo_im2_private.c1;
                                           ~~~~~~~~~~~~~~~
!!! privacyImport.ts(219,40): error TS2095: Could not find symbol 'glo_im2_private'.
    export var glo_im2_private_v2_public = new glo_im2_private.c1();
                                               ~~~~~~~~~~~~~~~
!!! privacyImport.ts(220,44): error TS2095: Could not find symbol 'glo_im2_private'.
    export var glo_im2_private_v3_public = glo_im2_private.f1;
                                           ~~~~~~~~~~~~~~~
!!! privacyImport.ts(221,40): error TS2095: Could not find symbol 'glo_im2_private'.
    export var glo_im2_private_v4_public = glo_im2_private.f1();
                                           ~~~~~~~~~~~~~~~
!!! privacyImport.ts(222,40): error TS2095: Could not find symbol 'glo_im2_private'.
    var glo_im2_private_v1_private = glo_im2_private.c1;
                                     ~~~~~~~~~~~~~~~
!!! privacyImport.ts(223,34): error TS2095: Could not find symbol 'glo_im2_private'.
    var glo_im2_private_v2_private = new glo_im2_private.c1();
                                         ~~~~~~~~~~~~~~~
!!! privacyImport.ts(224,38): error TS2095: Could not find symbol 'glo_im2_private'.
    var glo_im2_private_v3_private = glo_im2_private.f1;
                                     ~~~~~~~~~~~~~~~
!!! privacyImport.ts(225,34): error TS2095: Could not find symbol 'glo_im2_private'.
    var glo_im2_private_v4_private = glo_im2_private.f1();
                                     ~~~~~~~~~~~~~~~
!!! privacyImport.ts(226,34): error TS2095: Could not find symbol 'glo_im2_private'.
    
    import glo_im3_private = glo_M3_private;
    export var glo_im3_private_v1_public = glo_im3_private.c1;
    export var glo_im3_private_v2_public = new glo_im3_private.c1();
    export var glo_im3_private_v3_public = glo_im3_private.f1;
    export var glo_im3_private_v4_public = glo_im3_private.f1();
    var glo_im3_private_v1_private = glo_im3_private.c1;
    var glo_im3_private_v2_private = new glo_im3_private.c1();
    var glo_im3_private_v3_private = glo_im3_private.f1;
    var glo_im3_private_v4_private = glo_im3_private.f1();
    
    import glo_im4_private = require("glo_M4_private");
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(238,1): error TS2071: Unable to resolve external module '"glo_M4_private"'.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(238,1): error TS2072: Module cannot be aliased to a non-module type.
    export var glo_im4_private_v1_public = glo_im4_private.c1;
                                           ~~~~~~~~~~~~~~~
!!! privacyImport.ts(239,40): error TS2095: Could not find symbol 'glo_im4_private'.
    export var glo_im4_private_v2_public = new glo_im4_private.c1();
                                               ~~~~~~~~~~~~~~~
!!! privacyImport.ts(240,44): error TS2095: Could not find symbol 'glo_im4_private'.
    export var glo_im4_private_v3_public = glo_im4_private.f1;
                                           ~~~~~~~~~~~~~~~
!!! privacyImport.ts(241,40): error TS2095: Could not find symbol 'glo_im4_private'.
    export var glo_im4_private_v4_public = glo_im4_private.f1();
                                           ~~~~~~~~~~~~~~~
!!! privacyImport.ts(242,40): error TS2095: Could not find symbol 'glo_im4_private'.
    var glo_im4_private_v1_private = glo_im4_private.c1;
                                     ~~~~~~~~~~~~~~~
!!! privacyImport.ts(243,34): error TS2095: Could not find symbol 'glo_im4_private'.
    var glo_im4_private_v2_private = new glo_im4_private.c1();
                                         ~~~~~~~~~~~~~~~
!!! privacyImport.ts(244,38): error TS2095: Could not find symbol 'glo_im4_private'.
    var glo_im4_private_v3_private = glo_im4_private.f1;
                                     ~~~~~~~~~~~~~~~
!!! privacyImport.ts(245,34): error TS2095: Could not find symbol 'glo_im4_private'.
    var glo_im4_private_v4_private = glo_im4_private.f1();
                                     ~~~~~~~~~~~~~~~
!!! privacyImport.ts(246,34): error TS2095: Could not find symbol 'glo_im4_private'.
    
    // Parse error to export module
    export import glo_im1_public = glo_M1_public;
    export import glo_im2_public = glo_M3_private;
    export import glo_im3_public = require("glo_M2_public");
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(251,1): error TS2071: Unable to resolve external module '"glo_M2_public"'.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(251,1): error TS2072: Module cannot be aliased to a non-module type.
    export import glo_im4_public = require("glo_M4_private");
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(252,1): error TS2071: Unable to resolve external module '"glo_M4_private"'.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(252,1): error TS2072: Module cannot be aliased to a non-module type.
    
    
    export declare module "use_glo_M1_public" {
                          ~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(255,23): error TS2195: Ambient external module declaration must be defined in global context.
        import use_glo_M1_public = glo_M1_public;
        export var use_glo_M1_public_v1_public: { new (): use_glo_M1_public.c1; };
        export var use_glo_M1_public_v2_public: use_glo_M1_public;
                                                ~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(258,45): error TS4022: Type reference cannot refer to container '"use_glo_M1_public".use_glo_M1_public'.
        export var use_glo_M1_public_v3_public: () => use_glo_M1_public.c1;
        var use_glo_M1_public_v1_private: { new (): use_glo_M1_public.c1; };
        var use_glo_M1_public_v2_private: use_glo_M1_public;
                                          ~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(261,39): error TS4022: Type reference cannot refer to container '"use_glo_M1_public".use_glo_M1_public'.
        var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
    
        import use_glo_M2_public = require("glo_M2_public");
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(264,5): error TS2071: Unable to resolve external module '"glo_M2_public"'.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(264,5): error TS2072: Module cannot be aliased to a non-module type.
        export var use_glo_M2_public_v1_public: { new (): use_glo_M2_public.c1; };
        export var use_glo_M2_public_v2_public: use_glo_M2_public;
        export var use_glo_M2_public_v3_public: () => use_glo_M2_public.c1;
        var use_glo_M2_public_v1_private: { new (): use_glo_M2_public.c1; };
        var use_glo_M2_public_v2_private: use_glo_M2_public;
        var use_glo_M2_public_v3_private: () => use_glo_M2_public.c1;
    
        module m2 {
            import errorImport = require("glo_M2_public");
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(273,9): error TS2136: Import declarations in an internal module cannot reference an external module.
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(273,9): error TS2071: Unable to resolve external module '"glo_M2_public"'.
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(273,9): error TS2072: Module cannot be aliased to a non-module type.
            import nonerrorImport = glo_M1_public;
    
            module m5 {
                import m5_errorImport = require("glo_M2_public");
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(277,13): error TS2136: Import declarations in an internal module cannot reference an external module.
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(277,13): error TS2071: Unable to resolve external module '"glo_M2_public"'.
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(277,13): error TS2072: Module cannot be aliased to a non-module type.
                import m5_nonerrorImport = glo_M1_public;
            }
        }
    }
    
    
    declare module "use_glo_M3_private" {
                   ~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(284,16): error TS2195: Ambient external module declaration must be defined in global context.
        import use_glo_M3_private = glo_M3_private;
        export var use_glo_M3_private_v1_public: { new (): use_glo_M3_private.c1; };
        export var use_glo_M3_private_v2_public: use_glo_M3_private;
                                                 ~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(287,46): error TS4022: Type reference cannot refer to container '"use_glo_M3_private".use_glo_M3_private'.
        export var use_glo_M3_private_v3_public: () => use_glo_M3_private.c1;
        var use_glo_M3_private_v1_private: { new (): use_glo_M3_private.c1; };
        var use_glo_M3_private_v2_private: use_glo_M3_private;
                                           ~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(290,40): error TS4022: Type reference cannot refer to container '"use_glo_M3_private".use_glo_M3_private'.
        var use_glo_M3_private_v3_private: () => use_glo_M3_private.c1;
    
        import use_glo_M4_private = require("glo_M4_private");
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(293,5): error TS2071: Unable to resolve external module '"glo_M4_private"'.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(293,5): error TS2072: Module cannot be aliased to a non-module type.
        export var use_glo_M4_private_v1_public: { new (): use_glo_M4_private.c1; };
        export var use_glo_M4_private_v2_public: use_glo_M4_private;
        export var use_glo_M4_private_v3_public: () => use_glo_M4_private.c1;
        var use_glo_M4_private_v1_private: { new (): use_glo_M4_private.c1; };
        var use_glo_M4_private_v2_private: use_glo_M4_private;
        var use_glo_M4_private_v3_private: () => use_glo_M4_private.c1;
    
        module m2 {
            import errorImport = require("glo_M4_private");
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(302,9): error TS2136: Import declarations in an internal module cannot reference an external module.
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(302,9): error TS2071: Unable to resolve external module '"glo_M4_private"'.
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(302,9): error TS2072: Module cannot be aliased to a non-module type.
            import nonerrorImport = glo_M3_private;
    
            module m5 {
                import m5_errorImport = require("glo_M4_private");
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(306,13): error TS2136: Import declarations in an internal module cannot reference an external module.
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(306,13): error TS2071: Unable to resolve external module '"glo_M4_private"'.
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(306,13): error TS2072: Module cannot be aliased to a non-module type.
                import m5_nonerrorImport = glo_M3_private;
            }
        }
    }
    
    declare module "anotherParseError" {
                   ~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(312,16): error TS2195: Ambient external module declaration must be defined in global context.
        module m2 {
            declare module "abc" {
            ~~~~~~~
!!! privacyImport.ts(314,9): error TS1038: 'declare' modifier not allowed for code already in an ambient context.
                           ~~~~~
!!! privacyImport.ts(314,24): error TS2195: Ambient external module declaration must be defined in global context.
            }
        }
    
        module m2 {
            module "abc2" {
                   ~~~~~~
!!! privacyImport.ts(319,16): error TS2195: Ambient external module declaration must be defined in global context.
            }
        }
        module "abc3" {
               ~~~~~~
!!! privacyImport.ts(322,12): error TS2195: Ambient external module declaration must be defined in global context.
        }
    }
    
    declare export module "anotherParseError2" {
            ~~~~~~
!!! privacyImport.ts(326,9): error TS1029: 'export' modifier must precede 'declare' modifier.
                          ~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(326,23): error TS2195: Ambient external module declaration must be defined in global context.
        module m2 {
            declare module "abc" {
            ~~~~~~~
!!! privacyImport.ts(328,9): error TS1038: 'declare' modifier not allowed for code already in an ambient context.
                           ~~~~~
!!! privacyImport.ts(328,24): error TS2195: Ambient external module declaration must be defined in global context.
            }
        }
    
        module m2 {
            module "abc2" {
                   ~~~~~~
!!! privacyImport.ts(333,16): error TS2195: Ambient external module declaration must be defined in global context.
            }
        }
        module "abc3" {
               ~~~~~~
!!! privacyImport.ts(336,12): error TS2195: Ambient external module declaration must be defined in global context.
        }
    }
    
    module m2 {
        import m3 = require("use_glo_M1_public");
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(341,5): error TS2136: Import declarations in an internal module cannot reference an external module.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(341,5): error TS2071: Unable to resolve external module '"use_glo_M1_public"'.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(341,5): error TS2072: Module cannot be aliased to a non-module type.
        module m4 {
            var a = 10;
            import m2 = require("use_glo_M1_public");
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(344,9): error TS2136: Import declarations in an internal module cannot reference an external module.
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(344,9): error TS2071: Unable to resolve external module '"use_glo_M1_public"'.
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(344,9): error TS2072: Module cannot be aliased to a non-module type.
        }
    
    }
    
    export module m3 {
        import m3 = require("use_glo_M1_public");
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(350,5): error TS2136: Import declarations in an internal module cannot reference an external module.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(350,5): error TS2071: Unable to resolve external module '"use_glo_M1_public"'.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(350,5): error TS2072: Module cannot be aliased to a non-module type.
        module m4 {
            var a = 10;
            import m2 = require("use_glo_M1_public");
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(353,9): error TS2136: Import declarations in an internal module cannot reference an external module.
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(353,9): error TS2071: Unable to resolve external module '"use_glo_M1_public"'.
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! privacyImport.ts(353,9): error TS2072: Module cannot be aliased to a non-module type.
        }
    
    }