tests/cases/compiler/declFileTypeAnnotationVisibilityErrorParameterOfFunction.ts(14,34): error TS4078: Parameter 'param' of exported function has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorParameterOfFunction.ts(16,26): error TS4078: Parameter 'param' of exported function has or is using private name 'private1'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorParameterOfFunction.ts(39,35): error TS4078: Parameter 'param' of exported function has or is using private name 'm2'.
tests/cases/compiler/declFileTypeAnnotationVisibilityErrorParameterOfFunction.ts(41,28): error TS4077: Parameter 'param' of exported function has or is using name 'm2.public2' from private module 'm2'.


==== tests/cases/compiler/declFileTypeAnnotationVisibilityErrorParameterOfFunction.ts (4 errors) ====
    module m {
        class private1 {
        }
    
        export class public1 {
        }
    
        // Directly using names from this module
        function foo1(param: private1) {
        }
        function foo2(param = new private1()) {
        }
    
        export function foo3(param : private1) {
                                     ~~~~~~~~
!!! error TS4078: Parameter 'param' of exported function has or is using private name 'private1'.
        }
        export function foo4(param = new private1()) {
                             ~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4078: Parameter 'param' of exported function has or is using private name 'private1'.
        }
    
        function foo11(param: public1) {
        }
        function foo12(param = new public1()) {
        }
    
        export function foo13(param: public1) {
        }
        export function foo14(param = new public1()) {
        }
    
        module m2 {
            export class public2 {
            }
        }
    
        function foo111(param: m2.public2) {
        }
        function foo112(param = new m2.public2()) {
        }
    
        export function foo113(param: m2.public2) {
                                      ~~
!!! error TS4078: Parameter 'param' of exported function has or is using private name 'm2'.
        }
        export function foo114(param = new m2.public2()) {
                               ~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS4077: Parameter 'param' of exported function has or is using name 'm2.public2' from private module 'm2'.
        }
    }
    