tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(6,14): error TS2527: The inferred type of 'obj' references an inaccessible 'unique symbol' type. A type annotation is necessary.
tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(15,14): error TS2527: The inferred type of 'classExpression' references an inaccessible 'unique symbol' type. A type annotation is necessary.
tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(24,17): error TS2527: The inferred type of 'funcInferredReturnType' references an inaccessible 'unique symbol' type. A type annotation is necessary.
tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(24,64): error TS4078: Parameter 'obj' of exported function has or is using private name 's'.
tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(29,6): error TS4033: Property '[s]' of exported interface has or is using private name 's'.
tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(33,6): error TS4102: Method '[s]' of exported interface has or is using private name 's'.
tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(37,6): error TS4033: Property '[s]' of exported interface has or is using private name 's'.
tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(41,6): error TS4102: Method '[s]' of exported interface has or is using private name 's'.
tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(45,6): error TS4031: Public property '[s]' of exported class has or is using private name 's'.
tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(46,13): error TS4028: Public static property '[s]' of exported class has or is using private name 's'.
tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(50,6): error TS4100: Public method '[s]' of exported class has or is using private name 's'.
tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(51,13): error TS4097: Public static method '[s]' of exported class has or is using private name 's'.
tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(55,10): error TS4031: Public property '[s]' of exported class has or is using private name 's'.
tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(56,10): error TS4031: Public property '[s]' of exported class has or is using private name 's'.
tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(57,17): error TS4028: Public static property '[s]' of exported class has or is using private name 's'.
tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts(58,17): error TS4028: Public static property '[s]' of exported class has or is using private name 's'.


==== tests/cases/conformance/types/uniqueSymbol/uniqueSymbolsDeclarationsErrors.ts (16 errors) ====
    declare const s: unique symbol;
    interface I { readonly readonlyType: unique symbol; }
    
    // not allowed when emitting declarations
    
    export const obj = {
                 ~~~
!!! error TS2527: The inferred type of 'obj' references an inaccessible 'unique symbol' type. A type annotation is necessary.
        method1(p: typeof s): typeof s {
            return p;
        },
        method2(p: I["readonlyType"]): I["readonlyType"] {
            return p;
        }
    };
    
    export const classExpression = class {
                 ~~~~~~~~~~~~~~~
!!! error TS2527: The inferred type of 'classExpression' references an inaccessible 'unique symbol' type. A type annotation is necessary.
        method1(p: typeof s): typeof s {
            return p;
        }
        method2(p: I["readonlyType"]): I["readonlyType"] {
            return p;
        }
    };
    
    export function funcInferredReturnType(obj: { method(p: typeof s): void }) {
                    ~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2527: The inferred type of 'funcInferredReturnType' references an inaccessible 'unique symbol' type. A type annotation is necessary.
                                                                   ~
!!! error TS4078: Parameter 'obj' of exported function has or is using private name 's'.
        return obj;
    }
    
    export interface InterfaceWithPrivateNamedProperties {
        [s]: any;
         ~
!!! error TS4033: Property '[s]' of exported interface has or is using private name 's'.
    }
    
    export interface InterfaceWithPrivateNamedMethods {
        [s](): any;
         ~
!!! error TS4102: Method '[s]' of exported interface has or is using private name 's'.
    }
    
    export type TypeLiteralWithPrivateNamedProperties = {
        [s]: any;
         ~
!!! error TS4033: Property '[s]' of exported interface has or is using private name 's'.
    }
    
    export type TypeLiteralWithPrivateNamedMethods = {
        [s](): any;
         ~
!!! error TS4102: Method '[s]' of exported interface has or is using private name 's'.
    }
    
    export class ClassWithPrivateNamedProperties {
        [s]: any;
         ~
!!! error TS4031: Public property '[s]' of exported class has or is using private name 's'.
        static [s]: any;
                ~
!!! error TS4028: Public static property '[s]' of exported class has or is using private name 's'.
    }
    
    export class ClassWithPrivateNamedMethods {
        [s]() {}
         ~
!!! error TS4100: Public method '[s]' of exported class has or is using private name 's'.
        static [s]() {}
                ~
!!! error TS4097: Public static method '[s]' of exported class has or is using private name 's'.
    }
    
    export class ClassWithPrivateNamedAccessors {
        get [s](): any { return undefined; }
             ~
!!! error TS4031: Public property '[s]' of exported class has or is using private name 's'.
        set [s](v: any) { }
             ~
!!! error TS4031: Public property '[s]' of exported class has or is using private name 's'.
        static get [s](): any { return undefined; }
                    ~
!!! error TS4028: Public static property '[s]' of exported class has or is using private name 's'.
        static set [s](v: any) { }
                    ~
!!! error TS4028: Public static property '[s]' of exported class has or is using private name 's'.
    }