tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(16,21): error TS4043: Return type of public property getter from exported class has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(21,13): error TS4043: Return type of public property getter from exported class has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(26,25): error TS4037: Parameter 'foo3' of public property setter from exported class has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(33,25): error TS4037: Parameter 'foo4' of public property setter from exported class has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(37,21): error TS4043: Return type of public property getter from exported class has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(72,23): error TS4043: Return type of public property getter from exported class has or is using private name 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(77,13): error TS4042: Return type of public property getter from exported class has or is using name 'm2.public2' from private module 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(82,27): error TS4037: Parameter 'foo113' of public property setter from exported class has or is using private name 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(89,27): error TS4037: Parameter 'foo114' of public property setter from exported class has or is using private name 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts(93,23): error TS4043: Return type of public property getter from exported class has or is using private name 'm2'.


==== tests/cases/compiler/declFileTypeAnnotationVisibilityErrorAccessors.ts (10 errors) ====
    
    module m {
        class private1 {
        }
    
        export class public1 {
        }
    
        module m2 {
            export class public2 {
            }
        }
        
        export class c {
            // getter with annotation
            get foo1(): private1 {
                        ~~~~~~~~
!!! error TS4043: Return type of public property getter from exported class has or is using private name 'private1'.
                return;
            }
    
            // getter without annotation
            get foo2() {
                ~~~~
!!! error TS4043: Return type of public property getter from exported class has or is using private name 'private1'.
                return new private1();
            }
    
            // setter with annotation
            set foo3(param: private1) {
                            ~~~~~~~~
!!! error TS4037: Parameter 'foo3' of public property setter from exported class has or is using private name 'private1'.
            }
    
            // Both - getter without annotation, setter with annotation
            get foo4() {
                return new private1();
            }
            set foo4(param: private1) {
                            ~~~~~~~~
!!! error TS4037: Parameter 'foo4' of public property setter from exported class has or is using private name 'private1'.
            }
    
            // Both - with annotation
            get foo5(): private1 {
                        ~~~~~~~~
!!! error TS4043: Return type of public property getter from exported class has or is using private name 'private1'.
                return;
            }
            set foo5(param: private1) {
            }
        
            // getter with annotation
            get foo11(): public1 {
                return;
            }
    
            // getter without annotation
            get foo12() {
                return new public1();
            }
    
            // setter with annotation
            set foo13(param: public1) {
            }
    
            // Both - getter without annotation, setter with annotation
            get foo14() {
                return new public1();
            }
            set foo14(param: public1) {
            }
    
            // Both - with annotation
            get foo15(): public1 {
                return;
            }
            set foo15(param: public1) {
            }
    
            // getter with annotation
            get foo111(): m2.public2 {
                          ~~
!!! error TS4043: Return type of public property getter from exported class has or is using private name 'm2'.
                return;
            }
    
            // getter without annotation
            get foo112() {
                ~~~~~~
!!! error TS4042: Return type of public property getter from exported class has or is using name 'm2.public2' from private module 'm2'.
                return new m2.public2();
            }
    
            // setter with annotation
            set foo113(param: m2.public2) {
                              ~~
!!! error TS4037: Parameter 'foo113' of public property setter from exported class has or is using private name 'm2'.
            }
    
            // Both - getter without annotation, setter with annotation
            get foo114() {
                return new m2.public2();
            }
            set foo114(param: m2.public2) {
                              ~~
!!! error TS4037: Parameter 'foo114' of public property setter from exported class has or is using private name 'm2'.
            }
    
            // Both - with annotation
            get foo115(): m2.public2 {
                          ~~
!!! error TS4043: Return type of public property getter from exported class has or is using private name 'm2'.
                return;
            }
            set foo115(param: m2.public2) {
            }
        }
    }
    