diff --git a/build-tests/api-extractor-scenarios/config/build-config.json b/build-tests/api-extractor-scenarios/config/build-config.json index d2e0069eba4..58c9e104e55 100644 --- a/build-tests/api-extractor-scenarios/config/build-config.json +++ b/build-tests/api-extractor-scenarios/config/build-config.json @@ -1,6 +1,7 @@ { "scenarioFolderNames": [ "ambientNameConflict", + "ambiguousIds", "apiItemKinds", "circularImport", "circularImport2", diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ambiguousIds/api-extractor-scenarios.api.json b/build-tests/api-extractor-scenarios/etc/test-outputs/ambiguousIds/api-extractor-scenarios.api.json new file mode 100644 index 00000000000..87d5ca0e820 --- /dev/null +++ b/build-tests/api-extractor-scenarios/etc/test-outputs/ambiguousIds/api-extractor-scenarios.api.json @@ -0,0 +1,965 @@ +{ + "metadata": { + "toolPackage": "@microsoft/api-extractor", + "toolVersion": "[test mode]", + "schemaVersion": 1001, + "oldestForwardsCompatibleVersion": 1001 + }, + "kind": "Package", + "canonicalReference": "api-extractor-scenarios", + "uid": "api-extractor-scenarios/", + "docComment": "", + "name": "api-extractor-scenarios", + "members": [ + { + "kind": "EntryPoint", + "canonicalReference": "", + "name": "", + "members": [ + { + "kind": "Class", + "canonicalReference": "(ClassWithAmbiguity:class)", + "uid": "api-extractor-scenarios/ClassWithAmbiguity", + "docComment": "/**\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare class " + }, + { + "kind": "Reference", + "text": "ClassWithAmbiguity" + }, + { + "kind": "Content", + "text": " " + } + ], + "releaseTag": "Public", + "name": "ClassWithAmbiguity", + "members": [ + { + "kind": "Method", + "canonicalReference": "(__constructor:instance,0)", + "uid": "api-extractor-scenarios/ClassWithAmbiguity#__constructor(string)", + "docComment": "", + "excerptTokens": [ + { + "kind": "Reference", + "text": "__constructor" + }, + { + "kind": "Content", + "text": "(" + }, + { + "kind": "Reference", + "text": "x" + }, + { + "kind": "Content", + "text": ": " + }, + { + "kind": "Content", + "text": "string" + }, + { + "kind": "Content", + "text": "): " + }, + { + "kind": "Content", + "text": "void" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isStatic": false, + "returnTypeTokenRange": { + "startIndex": 6, + "endIndex": 7 + }, + "releaseTag": "Public", + "overloadIndex": 0, + "parameters": [ + { + "parameterName": "x", + "parameterTypeTokenRange": { + "startIndex": 4, + "endIndex": 5 + } + } + ], + "name": "__constructor" + }, + { + "kind": "Method", + "canonicalReference": "(__constructor:static,0)", + "uid": "api-extractor-scenarios/ClassWithAmbiguity.__constructor(string)", + "docComment": "", + "excerptTokens": [ + { + "kind": "Content", + "text": "static " + }, + { + "kind": "Reference", + "text": "__constructor" + }, + { + "kind": "Content", + "text": "(" + }, + { + "kind": "Reference", + "text": "x" + }, + { + "kind": "Content", + "text": ": " + }, + { + "kind": "Content", + "text": "string" + }, + { + "kind": "Content", + "text": "): " + }, + { + "kind": "Content", + "text": "void" + }, + { + "kind": "Content", + "text": ";" + } + ], + "isStatic": true, + "returnTypeTokenRange": { + "startIndex": 7, + "endIndex": 8 + }, + "releaseTag": "Public", + "overloadIndex": 0, + "parameters": [ + { + "parameterName": "x", + "parameterTypeTokenRange": { + "startIndex": 5, + "endIndex": 6 + } + } + ], + "name": "__constructor" + }, + { + "kind": "Constructor", + "canonicalReference": "(:constructor,0)", + "uid": "api-extractor-scenarios/ClassWithAmbiguity.__constructor(string)", + "docComment": "/**\n * Constructs a new instance of the `ClassWithAmbiguity` class\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "constructor(" + }, + { + "kind": "Reference", + "text": "x" + }, + { + "kind": "Content", + "text": ": " + }, + { + "kind": "Content", + "text": "string" + }, + { + "kind": "Content", + "text": ");" + } + ], + "releaseTag": "Public", + "overloadIndex": 0, + "parameters": [ + { + "parameterName": "x", + "parameterTypeTokenRange": { + "startIndex": 3, + "endIndex": 4 + } + } + ] + } + ], + "implementsTokenRanges": [] + }, + { + "kind": "Enum", + "canonicalReference": "(EnumAndNamespace:enum)", + "uid": "api-extractor-scenarios/EnumAndNamespace", + "docComment": "/**\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare enum " + }, + { + "kind": "Reference", + "text": "EnumAndNamespace" + }, + { + "kind": "Content", + "text": " " + } + ], + "releaseTag": "Public", + "name": "EnumAndNamespace", + "members": [ + { + "kind": "EnumMember", + "canonicalReference": "Apple", + "uid": "api-extractor-scenarios/EnumAndNamespace.Apple", + "docComment": "", + "excerptTokens": [ + { + "kind": "Reference", + "text": "Apple" + }, + { + "kind": "Content", + "text": " = " + }, + { + "kind": "Content", + "text": "0" + } + ], + "releaseTag": "Public", + "name": "Apple", + "initializerTokenRange": { + "startIndex": 2, + "endIndex": 3 + } + }, + { + "kind": "EnumMember", + "canonicalReference": "Banana", + "uid": "api-extractor-scenarios/EnumAndNamespace.Banana", + "docComment": "", + "excerptTokens": [ + { + "kind": "Reference", + "text": "Banana" + }, + { + "kind": "Content", + "text": " = " + }, + { + "kind": "Content", + "text": "1" + } + ], + "releaseTag": "Public", + "name": "Banana", + "initializerTokenRange": { + "startIndex": 2, + "endIndex": 3 + } + }, + { + "kind": "EnumMember", + "canonicalReference": "Coconut", + "uid": "api-extractor-scenarios/EnumAndNamespace.Coconut", + "docComment": "", + "excerptTokens": [ + { + "kind": "Reference", + "text": "Coconut" + }, + { + "kind": "Content", + "text": " = " + }, + { + "kind": "Content", + "text": "2" + } + ], + "releaseTag": "Public", + "name": "Coconut", + "initializerTokenRange": { + "startIndex": 2, + "endIndex": 3 + } + } + ] + }, + { + "kind": "Namespace", + "canonicalReference": "(EnumAndNamespace:namespace)", + "uid": "api-extractor-scenarios/EnumAndNamespace:namespace", + "docComment": "/**\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare namespace " + }, + { + "kind": "Reference", + "text": "EnumAndNamespace" + }, + { + "kind": "Content", + "text": " " + } + ], + "releaseTag": "Public", + "name": "EnumAndNamespace", + "members": [ + { + "kind": "Namespace", + "canonicalReference": "(NestedNamespace:namespace)", + "uid": "api-extractor-scenarios/EnumAndNamespace.NestedNamespace", + "docComment": "", + "excerptTokens": [ + { + "kind": "Content", + "text": "namespace " + }, + { + "kind": "Reference", + "text": "NestedNamespace" + }, + { + "kind": "Content", + "text": " " + } + ], + "releaseTag": "Public", + "name": "NestedNamespace", + "members": [ + { + "kind": "Variable", + "canonicalReference": "test", + "uid": "api-extractor-scenarios/EnumAndNamespace.NestedNamespace.test", + "docComment": "", + "excerptTokens": [ + { + "kind": "Reference", + "text": "test" + }, + { + "kind": "Content", + "text": ": " + }, + { + "kind": "Content", + "text": "number" + } + ], + "releaseTag": "Public", + "name": "test", + "variableTypeTokenRange": { + "startIndex": 2, + "endIndex": 3 + } + } + ] + }, + { + "kind": "Function", + "canonicalReference": "(parseEnum:0)", + "uid": "api-extractor-scenarios/EnumAndNamespace.parseEnum(string)", + "docComment": "", + "excerptTokens": [ + { + "kind": "Content", + "text": "function " + }, + { + "kind": "Reference", + "text": "parseEnum" + }, + { + "kind": "Content", + "text": "(" + }, + { + "kind": "Reference", + "text": "value" + }, + { + "kind": "Content", + "text": ": " + }, + { + "kind": "Content", + "text": "string" + }, + { + "kind": "Content", + "text": "): " + }, + { + "kind": "Reference", + "text": "EnumAndNamespace" + }, + { + "kind": "Content", + "text": ";" + } + ], + "returnTypeTokenRange": { + "startIndex": 7, + "endIndex": 8 + }, + "releaseTag": "Public", + "overloadIndex": 0, + "parameters": [ + { + "parameterName": "value", + "parameterTypeTokenRange": { + "startIndex": 5, + "endIndex": 6 + } + } + ], + "name": "parseEnum" + } + ] + }, + { + "kind": "Function", + "canonicalReference": "(functionWithUnexportedType:0)", + "uid": "api-extractor-scenarios/functionWithUnexportedType(api-extractor-scenarios/ForgottenExport)", + "docComment": "/**\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare function " + }, + { + "kind": "Reference", + "text": "functionWithUnexportedType" + }, + { + "kind": "Content", + "text": "(" + }, + { + "kind": "Reference", + "text": "forgottenExport" + }, + { + "kind": "Content", + "text": ": " + }, + { + "kind": "Reference", + "text": "ForgottenExport" + }, + { + "kind": "Content", + "text": "): " + }, + { + "kind": "Content", + "text": "void" + }, + { + "kind": "Content", + "text": ";" + } + ], + "returnTypeTokenRange": { + "startIndex": 7, + "endIndex": 8 + }, + "releaseTag": "Public", + "overloadIndex": 0, + "parameters": [ + { + "parameterName": "forgottenExport", + "parameterTypeTokenRange": { + "startIndex": 5, + "endIndex": 6 + } + } + ], + "name": "functionWithUnexportedType" + }, + { + "kind": "Function", + "canonicalReference": "(ThreeKinds:1)", + "uid": "api-extractor-scenarios/ThreeKinds(string)", + "docComment": "/**\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare function " + }, + { + "kind": "Reference", + "text": "ThreeKinds" + }, + { + "kind": "Content", + "text": "(" + }, + { + "kind": "Reference", + "text": "x" + }, + { + "kind": "Content", + "text": ": " + }, + { + "kind": "Content", + "text": "string" + }, + { + "kind": "Content", + "text": "): " + }, + { + "kind": "Reference", + "text": "ThreeThings" + }, + { + "kind": "Content", + "text": ";" + } + ], + "returnTypeTokenRange": { + "startIndex": 7, + "endIndex": 8 + }, + "releaseTag": "Public", + "overloadIndex": 1, + "parameters": [ + { + "parameterName": "x", + "parameterTypeTokenRange": { + "startIndex": 5, + "endIndex": 6 + } + } + ], + "name": "ThreeKinds" + }, + { + "kind": "Namespace", + "canonicalReference": "(ThreeKinds:namespace)", + "uid": "api-extractor-scenarios/ThreeKinds:namespace", + "docComment": "/**\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare namespace " + }, + { + "kind": "Reference", + "text": "ThreeKinds" + }, + { + "kind": "Content", + "text": " " + } + ], + "releaseTag": "Public", + "name": "ThreeKinds", + "members": [ + { + "kind": "Variable", + "canonicalReference": "x", + "uid": "api-extractor-scenarios/ThreeKinds.x", + "docComment": "", + "excerptTokens": [ + { + "kind": "Reference", + "text": "x" + }, + { + "kind": "Content", + "text": ": " + }, + { + "kind": "Content", + "text": "number" + } + ], + "releaseTag": "Public", + "name": "x", + "variableTypeTokenRange": { + "startIndex": 2, + "endIndex": 3 + } + } + ] + }, + { + "kind": "Interface", + "canonicalReference": "(ThreeThings:interface)", + "uid": "api-extractor-scenarios/ThreeThings", + "docComment": "/**\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export interface " + }, + { + "kind": "Reference", + "text": "ThreeThings" + }, + { + "kind": "Content", + "text": " " + } + ], + "releaseTag": "Public", + "name": "ThreeThings", + "members": [ + { + "kind": "PropertySignature", + "canonicalReference": "x", + "uid": "api-extractor-scenarios/ThreeThings#x", + "docComment": "", + "excerptTokens": [ + { + "kind": "Reference", + "text": "x" + }, + { + "kind": "Content", + "text": ": " + }, + { + "kind": "Content", + "text": "number" + }, + { + "kind": "Content", + "text": ";" + } + ], + "releaseTag": "Public", + "name": "x", + "propertyTypeTokenRange": { + "startIndex": 2, + "endIndex": 3 + } + } + ], + "extendsTokenRanges": [] + }, + { + "kind": "Function", + "canonicalReference": "(veryComplexSignature:0)", + "uid": "api-extractor-scenarios/veryComplexSignature({{args:{{}},buildErrorIconPath?:undefined|string,buildSuccessIconPath?:undefined|string,distFolder:string,isRedundantBuild?:undefined|false|true,jestEnabled?:undefined|false|true,libAMDFolder?:undefined|string,libES6Folder?:undefined|string,libESNextFolder?:undefined|string,libFolder:string,onTaskEnd?:undefined|(string,Array`1{number},?any)~void,onTaskStart?:undefined|(string)~void,packageFolder:string,production:boolean,properties?:undefined|{{}},relogIssues?:undefined|false|true,rootPath:string,shouldWarningsFailBuild:boolean,showToast?:undefined|false|true,srcFolder:string,tempFolder:string,verbose:boolean}}&Partial`1api-extractor-scenarios/ForgottenExport)", + "docComment": "/**\n * @public\n */\n", + "excerptTokens": [ + { + "kind": "Content", + "text": "export declare function " + }, + { + "kind": "Reference", + "text": "veryComplexSignature" + }, + { + "kind": "Content", + "text": "(" + }, + { + "kind": "Reference", + "text": "options" + }, + { + "kind": "Content", + "text": ": " + }, + { + "kind": "Content", + "text": "{\n " + }, + { + "kind": "Reference", + "text": "args" + }, + { + "kind": "Content", + "text": ": {\n [" + }, + { + "kind": "Reference", + "text": "name" + }, + { + "kind": "Content", + "text": ": string]: string | boolean;\n };\n " + }, + { + "kind": "Reference", + "text": "buildErrorIconPath" + }, + { + "kind": "Content", + "text": "?: string;\n " + }, + { + "kind": "Reference", + "text": "buildSuccessIconPath" + }, + { + "kind": "Content", + "text": "?: string;\n " + }, + { + "kind": "Reference", + "text": "distFolder" + }, + { + "kind": "Content", + "text": ": string;\n " + }, + { + "kind": "Reference", + "text": "isRedundantBuild" + }, + { + "kind": "Content", + "text": "?: boolean;\n " + }, + { + "kind": "Reference", + "text": "jestEnabled" + }, + { + "kind": "Content", + "text": "?: boolean;\n " + }, + { + "kind": "Reference", + "text": "libAMDFolder" + }, + { + "kind": "Content", + "text": "?: string;\n " + }, + { + "kind": "Reference", + "text": "libES6Folder" + }, + { + "kind": "Content", + "text": "?: string;\n " + }, + { + "kind": "Reference", + "text": "libESNextFolder" + }, + { + "kind": "Content", + "text": "?: string;\n " + }, + { + "kind": "Reference", + "text": "libFolder" + }, + { + "kind": "Content", + "text": ": string;\n " + }, + { + "kind": "Reference", + "text": "onTaskEnd" + }, + { + "kind": "Content", + "text": "?: (" + }, + { + "kind": "Reference", + "text": "taskName" + }, + { + "kind": "Content", + "text": ": string, " + }, + { + "kind": "Reference", + "text": "duration" + }, + { + "kind": "Content", + "text": ": number[], " + }, + { + "kind": "Reference", + "text": "error" + }, + { + "kind": "Content", + "text": "?: any) => void;\n " + }, + { + "kind": "Reference", + "text": "onTaskStart" + }, + { + "kind": "Content", + "text": "?: (" + }, + { + "kind": "Reference", + "text": "taskName" + }, + { + "kind": "Content", + "text": ": string) => void;\n " + }, + { + "kind": "Reference", + "text": "packageFolder" + }, + { + "kind": "Content", + "text": ": string;\n " + }, + { + "kind": "Reference", + "text": "production" + }, + { + "kind": "Content", + "text": ": boolean;\n " + }, + { + "kind": "Reference", + "text": "properties" + }, + { + "kind": "Content", + "text": "?: {\n [" + }, + { + "kind": "Reference", + "text": "key" + }, + { + "kind": "Content", + "text": ": string]: any;\n };\n " + }, + { + "kind": "Reference", + "text": "relogIssues" + }, + { + "kind": "Content", + "text": "?: boolean;\n " + }, + { + "kind": "Reference", + "text": "rootPath" + }, + { + "kind": "Content", + "text": ": string;\n " + }, + { + "kind": "Reference", + "text": "shouldWarningsFailBuild" + }, + { + "kind": "Content", + "text": ": boolean;\n " + }, + { + "kind": "Reference", + "text": "showToast" + }, + { + "kind": "Content", + "text": "?: boolean;\n " + }, + { + "kind": "Reference", + "text": "srcFolder" + }, + { + "kind": "Content", + "text": ": string;\n " + }, + { + "kind": "Reference", + "text": "tempFolder" + }, + { + "kind": "Content", + "text": ": string;\n " + }, + { + "kind": "Reference", + "text": "verbose" + }, + { + "kind": "Content", + "text": ": boolean;\n} & " + }, + { + "kind": "Reference", + "text": "Partial" + }, + { + "kind": "Content", + "text": "<" + }, + { + "kind": "Reference", + "text": "ForgottenExport" + }, + { + "kind": "Content", + "text": ">" + }, + { + "kind": "Content", + "text": "): " + }, + { + "kind": "Content", + "text": "void" + }, + { + "kind": "Content", + "text": ";" + } + ], + "returnTypeTokenRange": { + "startIndex": 67, + "endIndex": 68 + }, + "releaseTag": "Public", + "overloadIndex": 0, + "parameters": [ + { + "parameterName": "options", + "parameterTypeTokenRange": { + "startIndex": 5, + "endIndex": 66 + } + } + ], + "name": "veryComplexSignature" + } + ] + } + ] +} diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ambiguousIds/api-extractor-scenarios.api.md b/build-tests/api-extractor-scenarios/etc/test-outputs/ambiguousIds/api-extractor-scenarios.api.md new file mode 100644 index 00000000000..bd19dcc616f --- /dev/null +++ b/build-tests/api-extractor-scenarios/etc/test-outputs/ambiguousIds/api-extractor-scenarios.api.md @@ -0,0 +1,90 @@ +## API Report File for "api-extractor-scenarios" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +// @public (undocumented) +export class ClassWithAmbiguity { + constructor(x: string); + // (undocumented) + __constructor(x: string): void; + // (undocumented) + static __constructor(x: string): void; +} + +// @public (undocumented) +export enum EnumAndNamespace { + // (undocumented) + Apple = 0, + // (undocumented) + Banana = 1, + // (undocumented) + Coconut = 2 +} + +// @public (undocumented) +export namespace EnumAndNamespace { + // (undocumented) + export namespace NestedNamespace { + const // (undocumented) + test: number; + } + // (undocumented) + export function parseEnum(value: string): EnumAndNamespace; +} + +// Warning: (ae-forgotten-export) The symbol "ForgottenExport" needs to be exported by the entry point index.d.ts +// +// @public (undocumented) +export function functionWithUnexportedType(forgottenExport: ForgottenExport): void; + +// @public (undocumented) +export function ThreeKinds(x: string): ThreeThings; + +// @public (undocumented) +export namespace ThreeKinds { + const // (undocumented) + x: number; +} + +// @public (undocumented) +export interface ThreeThings { + // (undocumented) + x: number; +} + +// @public (undocumented) +export function veryComplexSignature(options: { + args: { + [name: string]: string | boolean; + }; + buildErrorIconPath?: string; + buildSuccessIconPath?: string; + distFolder: string; + isRedundantBuild?: boolean; + jestEnabled?: boolean; + libAMDFolder?: string; + libES6Folder?: string; + libESNextFolder?: string; + libFolder: string; + onTaskEnd?: (taskName: string, duration: number[], error?: any) => void; + onTaskStart?: (taskName: string) => void; + packageFolder: string; + production: boolean; + properties?: { + [key: string]: any; + }; + relogIssues?: boolean; + rootPath: string; + shouldWarningsFailBuild: boolean; + showToast?: boolean; + srcFolder: string; + tempFolder: string; + verbose: boolean; +} & Partial): void; + + +// (No @packageDocumentation comment for this package) + +``` diff --git a/build-tests/api-extractor-scenarios/etc/test-outputs/ambiguousIds/rollup.d.ts b/build-tests/api-extractor-scenarios/etc/test-outputs/ambiguousIds/rollup.d.ts new file mode 100644 index 00000000000..37e048223c1 --- /dev/null +++ b/build-tests/api-extractor-scenarios/etc/test-outputs/ambiguousIds/rollup.d.ts @@ -0,0 +1,74 @@ + +/** @public */ +export declare class ClassWithAmbiguity { + constructor(x: string); + __constructor(x: string): void; + static __constructor(x: string): void; +} + +/** @public */ +export declare enum EnumAndNamespace { + Apple = 0, + Banana = 1, + Coconut = 2 +} + +/** @public */ +export declare namespace EnumAndNamespace { + export function parseEnum(value: string): EnumAndNamespace; + export namespace NestedNamespace { + const test: number; + } +} + +declare interface ForgottenExport { + a: string; +} + +/** @public */ +export declare function functionWithUnexportedType(forgottenExport: ForgottenExport): void; + +/** @public */ +export declare function ThreeKinds(x: string): ThreeThings; + +/** @public */ +export declare namespace ThreeKinds { + const x: number; +} + +/** @public */ +export declare interface ThreeThings { + x: number; +} + +/** @public */ +export declare function veryComplexSignature(options: { + args: { + [name: string]: string | boolean; + }; + buildErrorIconPath?: string; + buildSuccessIconPath?: string; + distFolder: string; + isRedundantBuild?: boolean; + jestEnabled?: boolean; + libAMDFolder?: string; + libES6Folder?: string; + libESNextFolder?: string; + libFolder: string; + onTaskEnd?: (taskName: string, duration: number[], error?: any) => void; + onTaskStart?: (taskName: string) => void; + packageFolder: string; + production: boolean; + properties?: { + [key: string]: any; + }; + relogIssues?: boolean; + rootPath: string; + shouldWarningsFailBuild: boolean; + showToast?: boolean; + srcFolder: string; + tempFolder: string; + verbose: boolean; +} & Partial): void; + +export { } diff --git a/build-tests/api-extractor-scenarios/src/ambiguousIds/index.ts b/build-tests/api-extractor-scenarios/src/ambiguousIds/index.ts new file mode 100644 index 00000000000..d666b4f5125 --- /dev/null +++ b/build-tests/api-extractor-scenarios/src/ambiguousIds/index.ts @@ -0,0 +1,86 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +/** @public */ +export class ClassWithAmbiguity { + public constructor(x: string) { + } + + public __constructor(x: string): void { + } + + public static __constructor(x: string): void { + } +} + +/** @public */ +export enum EnumAndNamespace { + Apple, + Banana, + Coconut +} + +/** @public */ +export namespace EnumAndNamespace { + export function parseEnum(value: string): EnumAndNamespace { + return EnumAndNamespace.Apple; + } + + export namespace NestedNamespace { + export const test: number = 123; + } +} + +/** @public */ +export function ThreeKinds(x: string): ThreeThings { + return { x: 123 }; +} + +/** @public */ +export interface ThreeThings { + x: number; +} + +/** @public */ +export namespace ThreeKinds { + export const x: number = 321; +} + +interface ForgottenExport { + a: string; +} + +/** @public */ +export function functionWithUnexportedType(forgottenExport: ForgottenExport): void { +} + +/** @public */ +export function veryComplexSignature(options: { + args: { + [name: string]: string | boolean; + }; + buildErrorIconPath?: string; + buildSuccessIconPath?: string; + distFolder: string; + isRedundantBuild?: boolean; + jestEnabled?: boolean; + libAMDFolder?: string; + libES6Folder?: string; + libESNextFolder?: string; + libFolder: string; + onTaskEnd?: (taskName: string, duration: number[], error?: any) => void; + onTaskStart?: (taskName: string) => void; + packageFolder: string; + production: boolean; + properties?: { + [key: string]: any; + }; + relogIssues?: boolean; + rootPath: string; + shouldWarningsFailBuild: boolean; + showToast?: boolean; + srcFolder: string; + tempFolder: string; + verbose: boolean; + } & Partial): void { +}