declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(24,21): error TS2454: Variable 'x' is used before being assigned.
declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(28,21): error TS2454: Variable 'y' is used before being assigned.
declFileTypeAnnotationVisibilityErrorTypeLiteral.ts(32,21): error TS2454: Variable 'z' is used before being assigned.


==== declFileTypeAnnotationVisibilityErrorTypeLiteral.ts (3 errors) ====
    namespace m {
        class private1 {
        }
        namespace m2 {
            export class public1 {
            }
        }
    
        export var x: {
            x: private1;
            y: m2.public1;
            (): m2.public1[];
            method(): private1;
            [n: number]: private1;
            [s: string]: m2.public1;
        };
        export var x2 = {
            x: new private1(),
            y: new m2.public1(),
            method() {
                return new private1();
            }
        };
        export var x3 = x;
                        ~
!!! error TS2454: Variable 'x' is used before being assigned.
    
        // Function type
        export var y: (a: private1) => m2.public1;
        export var y2 = y;
                        ~
!!! error TS2454: Variable 'y' is used before being assigned.
    
        // constructor type
        export var z: new (a: private1) => m2.public1;
        export var z2 = z;
                        ~
!!! error TS2454: Variable 'z' is used before being assigned.
    }