Full Code of TypeStrong/typedoc for AI

master 2d23fc06f2d7 cached
837 files
4.9 MB
1.3M tokens
2666 symbols
1 requests
Download .txt
Showing preview only (5,269K chars total). Download the full file or copy to clipboard to get everything.
Repository: TypeStrong/typedoc
Branch: master
Commit: 2d23fc06f2d7
Files: 837
Total size: 4.9 MB

Directory structure:
gitextract_ygk5af18/

├── .config/
│   ├── mocha.fast.json
│   ├── mocha.full.json
│   ├── mocha.test-explorer.json
│   ├── regconfig.json
│   └── typedoc.json
├── .editorconfig
├── .gitattributes
├── .github/
│   ├── CODE_OF_CONDUCT.md
│   ├── CONTRIBUTING.md
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── config.yml
│   │   └── feature_request.md
│   ├── SECURITY.md
│   └── workflows/
│       ├── build-site.yml
│       ├── ci.yml
│       ├── publish-beta.yml
│       ├── publish-lts.yml
│       └── publish.yml
├── .gitignore
├── .npmrc
├── .vscode/
│   ├── extensions.json
│   ├── launch.json
│   ├── settings.json
│   └── tasks.json
├── CHANGELOG.md
├── LICENSE
├── README.md
├── bin/
│   ├── package.json
│   └── typedoc
├── dprint.json
├── eslint.config.mjs
├── example/
│   ├── .eslintrc.json
│   ├── README.md
│   ├── building-the-example.md
│   ├── package.json
│   ├── src/
│   │   ├── classes/
│   │   │   ├── CancellablePromise.ts
│   │   │   ├── Customer.ts
│   │   │   ├── StringArray.ts
│   │   │   └── index.ts
│   │   ├── documents/
│   │   │   ├── external-markdown.md
│   │   │   ├── include-code.md
│   │   │   ├── include.md
│   │   │   ├── markdown.md
│   │   │   └── syntax-highlighting.md
│   │   ├── enums.ts
│   │   ├── functions.ts
│   │   ├── index.ts
│   │   ├── internals.ts
│   │   ├── reactComponents.tsx
│   │   ├── reexports.ts
│   │   ├── types.ts
│   │   └── variables.ts
│   ├── tsconfig.json
│   └── typedoc.json
├── package.json
├── scripts/
│   ├── build_browser_translations.js
│   ├── build_site.sh
│   ├── build_themes.js
│   ├── capture_screenshots.mjs
│   ├── clone_api_users.js
│   ├── create_release.js
│   ├── data/
│   │   └── api_users.js
│   ├── download_plugins.cjs
│   ├── generate_options_schema.js
│   ├── generate_site_plugins.js
│   ├── prepare.mjs
│   ├── rebuild_specs.js
│   ├── set_strict.js
│   ├── sync_i18n.js
│   ├── testcase.js
│   └── visual_regression.js
├── site/
│   ├── custom.css
│   ├── declaration-references.md
│   ├── development/
│   │   ├── index.md
│   │   ├── internationalization.md
│   │   ├── local-storage.md
│   │   ├── plugins.md
│   │   ├── themes.md
│   │   └── third-party-symbols.md
│   ├── doc-comments/
│   │   ├── index.md
│   │   ├── jsdoc-support.md
│   │   └── tsdoc-support.md
│   ├── external-documents.md
│   ├── generated/
│   │   └── .gitignore
│   ├── googlede482cdb17c37ad4.html
│   ├── index.md
│   ├── options/
│   │   ├── comments.md
│   │   ├── configuration.md
│   │   ├── input.md
│   │   ├── organization.md
│   │   ├── other.md
│   │   ├── output.md
│   │   ├── package-options.md
│   │   └── validation.md
│   ├── options.md
│   ├── overview.md
│   ├── plugins.md
│   ├── site-plugin.js
│   ├── tags/
│   │   ├── abstract.md
│   │   ├── alpha.md
│   │   ├── author.md
│   │   ├── beta.md
│   │   ├── category.md
│   │   ├── class.md
│   │   ├── defaultValue.md
│   │   ├── deprecated.md
│   │   ├── document.md
│   │   ├── enum.md
│   │   ├── event.md
│   │   ├── eventProperty.md
│   │   ├── example.md
│   │   ├── expand.md
│   │   ├── experimental.md
│   │   ├── function.md
│   │   ├── group.md
│   │   ├── hidden.md
│   │   ├── hideconstructor.md
│   │   ├── ignore.md
│   │   ├── import.md
│   │   ├── include.md
│   │   ├── inheritDoc.md
│   │   ├── inline.md
│   │   ├── interface.md
│   │   ├── internal.md
│   │   ├── label.md
│   │   ├── license.md
│   │   ├── link.md
│   │   ├── mergeModuleWith.md
│   │   ├── module.md
│   │   ├── namespace.md
│   │   ├── overload.md
│   │   ├── override.md
│   │   ├── packageDocumentation.md
│   │   ├── param.md
│   │   ├── primaryExport.md
│   │   ├── private.md
│   │   ├── privateRemarks.md
│   │   ├── property.md
│   │   ├── protected.md
│   │   ├── public.md
│   │   ├── readonly.md
│   │   ├── remarks.md
│   │   ├── returns.md
│   │   ├── sealed.md
│   │   ├── see.md
│   │   ├── since.md
│   │   ├── sortStrategy.md
│   │   ├── summary.md
│   │   ├── template.md
│   │   ├── throws.md
│   │   ├── typeParam.md
│   │   ├── typescript.md
│   │   ├── useDeclaredType.md
│   │   └── virtual.md
│   ├── tags.md
│   ├── themes.md
│   ├── typedoc-plugin-redirect.js
│   └── typedoc.config.jsonc
├── src/
│   ├── browser-utils.ts
│   ├── index.ts
│   ├── lib/
│   │   ├── application-events.ts
│   │   ├── application.ts
│   │   ├── cli.ts
│   │   ├── converter/
│   │   │   ├── comments/
│   │   │   │   ├── blockLexer.ts
│   │   │   │   ├── declarationReferenceResolver.ts
│   │   │   │   ├── discovery.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── lexer.ts
│   │   │   │   ├── lineLexer.ts
│   │   │   │   ├── linkResolver.ts
│   │   │   │   ├── parser.ts
│   │   │   │   ├── rawLexer.ts
│   │   │   │   ├── tagName.ts
│   │   │   │   └── textParser.ts
│   │   │   ├── components.ts
│   │   │   ├── context.ts
│   │   │   ├── convert-expression.ts
│   │   │   ├── converter-events.ts
│   │   │   ├── converter.ts
│   │   │   ├── factories/
│   │   │   │   ├── index-signature.ts
│   │   │   │   ├── signature.ts
│   │   │   │   └── symbol-id.ts
│   │   │   ├── index.ts
│   │   │   ├── jsdoc.ts
│   │   │   ├── plugins/
│   │   │   │   ├── CategoryPlugin.ts
│   │   │   │   ├── CommentPlugin.ts
│   │   │   │   ├── GroupPlugin.ts
│   │   │   │   ├── ImplementsPlugin.ts
│   │   │   │   ├── IncludePlugin.ts
│   │   │   │   ├── InheritDocPlugin.ts
│   │   │   │   ├── LinkResolverPlugin.ts
│   │   │   │   ├── MergeModuleWithPlugin.ts
│   │   │   │   ├── PackagePlugin.ts
│   │   │   │   ├── SourcePlugin.ts
│   │   │   │   ├── TypePlugin.ts
│   │   │   │   └── index.ts
│   │   │   ├── symbols.ts
│   │   │   ├── types.ts
│   │   │   └── utils/
│   │   │       ├── nodes.ts
│   │   │       ├── reflections.ts
│   │   │       ├── repository.ts
│   │   │       └── symbols.ts
│   │   ├── debug/
│   │   │   ├── index.ts
│   │   │   ├── reflectionLifetimes.ts
│   │   │   └── rendererUrls.ts
│   │   ├── internationalization/
│   │   │   ├── index.ts
│   │   │   ├── internationalization.ts
│   │   │   ├── locale-utils.cts
│   │   │   ├── locales/
│   │   │   │   ├── de.cts
│   │   │   │   ├── en.cts
│   │   │   │   ├── ja.cts
│   │   │   │   ├── ko.cts
│   │   │   │   └── zh.cts
│   │   │   └── translatable.ts
│   │   ├── models/
│   │   │   ├── Comment.ts
│   │   │   ├── ContainerReflection.ts
│   │   │   ├── DeclarationReflection.ts
│   │   │   ├── DocumentReflection.ts
│   │   │   ├── FileRegistry.ts
│   │   │   ├── ParameterReflection.ts
│   │   │   ├── ProjectReflection.ts
│   │   │   ├── ReferenceReflection.ts
│   │   │   ├── Reflection.ts
│   │   │   ├── ReflectionCategory.ts
│   │   │   ├── ReflectionGroup.ts
│   │   │   ├── ReflectionSymbolId.ts
│   │   │   ├── SignatureReflection.ts
│   │   │   ├── SourceReference.ts
│   │   │   ├── TypeParameterReflection.ts
│   │   │   ├── index.ts
│   │   │   ├── kind.ts
│   │   │   ├── types.ts
│   │   │   ├── utils.ts
│   │   │   └── variant.ts
│   │   ├── output/
│   │   │   ├── components.ts
│   │   │   ├── events.ts
│   │   │   ├── formatter.tsx
│   │   │   ├── index.ts
│   │   │   ├── output.ts
│   │   │   ├── plugins/
│   │   │   │   ├── AssetsPlugin.ts
│   │   │   │   ├── HierarchyPlugin.ts
│   │   │   │   ├── IconsPlugin.tsx
│   │   │   │   ├── JavascriptIndexPlugin.ts
│   │   │   │   ├── NavigationPlugin.ts
│   │   │   │   ├── SitemapPlugin.ts
│   │   │   │   └── index.ts
│   │   │   ├── renderer.ts
│   │   │   ├── router.ts
│   │   │   ├── theme.ts
│   │   │   └── themes/
│   │   │       ├── MarkedPlugin.tsx
│   │   │       ├── default/
│   │   │       │   ├── DefaultTheme.tsx
│   │   │       │   ├── DefaultThemeRenderContext.ts
│   │   │       │   ├── Slugger.ts
│   │   │       │   ├── assets/
│   │   │       │   │   ├── bootstrap.ts
│   │   │       │   │   └── typedoc/
│   │   │       │   │       ├── Application.ts
│   │   │       │   │       ├── Component.ts
│   │   │       │   │       ├── EventTarget.ts
│   │   │       │   │       ├── Hierarchy.ts
│   │   │       │   │       ├── Navigation.ts
│   │   │       │   │       ├── Theme.ts
│   │   │       │   │       ├── components/
│   │   │       │   │       │   ├── Accordion.ts
│   │   │       │   │       │   ├── Filter.ts
│   │   │       │   │       │   ├── Search.ts
│   │   │       │   │       │   └── Toggle.ts
│   │   │       │   │       └── utils/
│   │   │       │   │           ├── debounce.ts
│   │   │       │   │           ├── decompress.ts
│   │   │       │   │           ├── modal.ts
│   │   │       │   │           ├── pointer.ts
│   │   │       │   │           ├── storage.ts
│   │   │       │   │           └── throttle.ts
│   │   │       │   ├── layouts/
│   │   │       │   │   └── default.tsx
│   │   │       │   ├── partials/
│   │   │       │   │   ├── anchor-icon.tsx
│   │   │       │   │   ├── breadcrumb.tsx
│   │   │       │   │   ├── comment.tsx
│   │   │       │   │   ├── footer.tsx
│   │   │       │   │   ├── header.tsx
│   │   │       │   │   ├── hierarchy.tsx
│   │   │       │   │   ├── icon.tsx
│   │   │       │   │   ├── index.tsx
│   │   │       │   │   ├── member.declaration.tsx
│   │   │       │   │   ├── member.getterSetter.tsx
│   │   │       │   │   ├── member.signature.body.tsx
│   │   │       │   │   ├── member.signature.title.tsx
│   │   │       │   │   ├── member.signatures.tsx
│   │   │       │   │   ├── member.sources.tsx
│   │   │       │   │   ├── member.tsx
│   │   │       │   │   ├── members.tsx
│   │   │       │   │   ├── moduleReflection.tsx
│   │   │       │   │   ├── navigation.tsx
│   │   │       │   │   ├── reflectionPreview.tsx
│   │   │       │   │   ├── toolbar.tsx
│   │   │       │   │   ├── type.tsx
│   │   │       │   │   ├── typeAndParent.tsx
│   │   │       │   │   ├── typeDetails.tsx
│   │   │       │   │   └── typeParameters.tsx
│   │   │       │   └── templates/
│   │   │       │       ├── document.tsx
│   │   │       │       ├── hierarchy.tsx
│   │   │       │       ├── index.tsx
│   │   │       │       └── reflection.tsx
│   │   │       └── lib.tsx
│   │   ├── serialization/
│   │   │   ├── components.ts
│   │   │   ├── deserializer.ts
│   │   │   ├── events.ts
│   │   │   ├── index.ts
│   │   │   ├── schema.ts
│   │   │   └── serializer.ts
│   │   ├── types/
│   │   │   ├── shiki/
│   │   │   │   └── shiki.d.ts
│   │   │   └── ts-internal/
│   │   │       └── index.d.ts
│   │   ├── utils/
│   │   │   ├── ValidatingFileRegistry.ts
│   │   │   ├── component.ts
│   │   │   ├── compress.ts
│   │   │   ├── declaration-maps.ts
│   │   │   ├── entry-point.ts
│   │   │   ├── fs.ts
│   │   │   ├── general.ts
│   │   │   ├── highlighter.tsx
│   │   │   ├── html-entities.ts
│   │   │   ├── html.ts
│   │   │   ├── index.ts
│   │   │   ├── loggers.ts
│   │   │   ├── options/
│   │   │   │   ├── declaration.ts
│   │   │   │   ├── defaults.ts
│   │   │   │   ├── help.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── options.ts
│   │   │   │   ├── readers/
│   │   │   │   │   ├── arguments.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── package-json.ts
│   │   │   │   │   ├── tsconfig.ts
│   │   │   │   │   └── typedoc.ts
│   │   │   │   ├── sources/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typedoc.ts
│   │   │   │   └── tsdoc-defaults.ts
│   │   │   ├── package-manifest.ts
│   │   │   ├── paths.ts
│   │   │   ├── perf.ts
│   │   │   ├── plugins.ts
│   │   │   ├── reflections.ts
│   │   │   ├── sort.ts
│   │   │   ├── tsconfig.ts
│   │   │   └── tsutils.ts
│   │   ├── utils-common/
│   │   │   ├── array.ts
│   │   │   ├── declarationReference.ts
│   │   │   ├── enum.ts
│   │   │   ├── events.ts
│   │   │   ├── general.ts
│   │   │   ├── hooks.ts
│   │   │   ├── i18n.ts
│   │   │   ├── index.ts
│   │   │   ├── jsx.elements.ts
│   │   │   ├── jsx.ts
│   │   │   ├── logger.ts
│   │   │   ├── map.ts
│   │   │   ├── minimalSourceFile.ts
│   │   │   ├── path.ts
│   │   │   ├── set.ts
│   │   │   ├── string.ts
│   │   │   └── validation.ts
│   │   └── validation/
│   │       ├── documentation.ts
│   │       ├── exports.ts
│   │       ├── links.ts
│   │       └── unusedMergeModuleWith.ts
│   └── test/
│       ├── Repository.test.ts
│       ├── TestLogger.ts
│       ├── behavior.c2.test.ts
│       ├── comments.test.ts
│       ├── converter/
│       │   ├── alias/
│       │   │   ├── alias.ts
│       │   │   └── specs.json
│       │   ├── class/
│       │   │   ├── access.ts
│       │   │   ├── class.ts
│       │   │   ├── constructor-properties.ts
│       │   │   ├── decorators.ts
│       │   │   ├── events-overloads.ts
│       │   │   ├── events.ts
│       │   │   ├── generic-class.ts
│       │   │   ├── getter-setter.ts
│       │   │   ├── specs-with-lump-categories.json
│       │   │   ├── specs.json
│       │   │   └── type-operator.ts
│       │   ├── comment/
│       │   │   ├── comment.ts
│       │   │   ├── comment2.ts
│       │   │   ├── comment3.ts
│       │   │   ├── comment4.ts
│       │   │   ├── document.md
│       │   │   └── specs.json
│       │   ├── declaration/
│       │   │   ├── declaration.d.ts
│       │   │   ├── export-declaration.d.ts
│       │   │   ├── external.d.ts
│       │   │   └── specs.json
│       │   ├── enum/
│       │   │   ├── enum.ts
│       │   │   ├── specs.json
│       │   │   └── specs.nodoc.json
│       │   ├── exports/
│       │   │   ├── export-assignment.ts
│       │   │   ├── export-default.ts
│       │   │   ├── export-with-local.ts
│       │   │   ├── export.ts
│       │   │   ├── mod.ts
│       │   │   ├── no-doc-members.ts
│       │   │   ├── specs.json
│       │   │   ├── specs.nodoc.json
│       │   │   └── test.json
│       │   ├── function/
│       │   │   ├── function.ts
│       │   │   ├── generic-function.ts
│       │   │   ├── implicit-types.ts
│       │   │   └── specs.json
│       │   ├── inherit-param-doc/
│       │   │   ├── inherit-param-doc.ts
│       │   │   └── specs.json
│       │   ├── inheritance/
│       │   │   ├── inherit-doc.ts
│       │   │   ├── mergable-class.ts
│       │   │   └── specs.json
│       │   ├── interface/
│       │   │   ├── constructor-type.ts
│       │   │   ├── index-signature.ts
│       │   │   ├── interface-empty.ts
│       │   │   ├── interface-implementation.ts
│       │   │   ├── merging.ts
│       │   │   └── specs.json
│       │   ├── js/
│       │   │   ├── export-eq-type.js
│       │   │   ├── index.js
│       │   │   └── specs.json
│       │   ├── mixin/
│       │   │   ├── mixin.ts
│       │   │   └── specs.json
│       │   ├── react/
│       │   │   ├── react.tsx
│       │   │   └── specs.json
│       │   ├── tsconfig.json
│       │   ├── types/
│       │   │   ├── general.ts
│       │   │   ├── index-signature.ts
│       │   │   ├── mapped.ts
│       │   │   ├── parens.ts
│       │   │   ├── query.ts
│       │   │   ├── specs.json
│       │   │   ├── tuple.ts
│       │   │   ├── type-operator.ts
│       │   │   └── union-or-intersection.ts
│       │   └── variables/
│       │       ├── array.ts
│       │       ├── destructuring.ts
│       │       ├── literal.ts
│       │       ├── specs.json
│       │       ├── specs.nodoc.json
│       │       └── variable.ts
│       ├── converter.test.ts
│       ├── converter2/
│       │   ├── behavior/
│       │   │   ├── asConstEnum.ts
│       │   │   ├── benchmark.ts
│       │   │   ├── blockComment.ts
│       │   │   ├── cascadedModifiers.ts
│       │   │   ├── categoryInheritance.ts
│       │   │   ├── classTag.ts
│       │   │   ├── constNamespace.ts
│       │   │   ├── constTypeParam.ts
│       │   │   ├── ctorTypeParam.ts
│       │   │   ├── declareGlobal.ts
│       │   │   ├── defaultTag.ts
│       │   │   ├── defaultValueTag.ts
│       │   │   ├── destructuredParamRenames.ts
│       │   │   ├── documents/
│       │   │   │   ├── doc.md
│       │   │   │   ├── docs.ts
│       │   │   │   ├── package.json
│       │   │   │   └── readme.md
│       │   │   ├── duplicateHeritageClauses.ts
│       │   │   ├── exampleTags.ts
│       │   │   ├── excludeCategories.ts
│       │   │   ├── excludeNotDocumentedKinds.ts
│       │   │   ├── exportComments.ts
│       │   │   ├── externalSymbols.ts
│       │   │   ├── groupInheritance.ts
│       │   │   ├── groupTag.ts
│       │   │   ├── hiddenAccessor.ts
│       │   │   ├── hideconstructor.ts
│       │   │   ├── hierarchy.ts
│       │   │   ├── highlightedProperties.ts
│       │   │   ├── includeTag/
│       │   │   │   ├── circularInclude.ts
│       │   │   │   ├── duplicateRegion.ts
│       │   │   │   ├── emptyRegion.ts
│       │   │   │   ├── foldAndRegion.java
│       │   │   │   ├── includeInDoc.md
│       │   │   │   ├── includeTag.md
│       │   │   │   ├── includeTag.ts
│       │   │   │   ├── includeTagDedent.ts
│       │   │   │   ├── includeTagMultipleRegions.ts
│       │   │   │   ├── invalid.extension
│       │   │   │   ├── invalidInclude.ts
│       │   │   │   ├── invalidLineRanges.ts
│       │   │   │   ├── missingRegion.ts
│       │   │   │   └── unsupportedExtension.ts
│       │   │   ├── inferredPredicates.ts
│       │   │   ├── inheritDocBasic.ts
│       │   │   ├── inheritDocJsdoc.ts
│       │   │   ├── inheritDocRecursive.ts
│       │   │   ├── inheritDocSignature.ts
│       │   │   ├── inheritDocWarnings.ts
│       │   │   ├── inlineTag.ts
│       │   │   ├── instantiationExpressions.ts
│       │   │   ├── lineComment.ts
│       │   │   ├── linkResolution.ts
│       │   │   ├── linkResolutionErrors.ts
│       │   │   ├── linkResolutionTs.ts
│       │   │   ├── mergedDeclarations.ts
│       │   │   ├── namedTupleMembers.ts
│       │   │   ├── noInfer.ts
│       │   │   ├── overloadTags.js
│       │   │   ├── overloads.ts
│       │   │   ├── readonlyTag.ts
│       │   │   ├── refusingToRecurse.ts
│       │   │   ├── removeReflection.ts
│       │   │   ├── resolutionMode.ts
│       │   │   ├── router.ts
│       │   │   ├── seeTags.ts
│       │   │   ├── sortStrategyTag.ts
│       │   │   ├── thisType.ts
│       │   │   ├── typeAliasInterface.ts
│       │   │   └── useDeclaredTypeTag.ts
│       │   ├── issues/
│       │   │   ├── gh1124.d.ts
│       │   │   ├── gh1150.ts
│       │   │   ├── gh1164.ts
│       │   │   ├── gh1215.d.ts
│       │   │   ├── gh1255.js
│       │   │   ├── gh1261.ts
│       │   │   ├── gh1330.ts
│       │   │   ├── gh1366.d.ts
│       │   │   ├── gh1408.ts
│       │   │   ├── gh1436.d.ts
│       │   │   ├── gh1449.ts
│       │   │   ├── gh1454.ts
│       │   │   ├── gh1462.ts
│       │   │   ├── gh1481.js
│       │   │   ├── gh1483.js
│       │   │   ├── gh1490.ts
│       │   │   ├── gh1509.ts
│       │   │   ├── gh1514.ts
│       │   │   ├── gh1522.ts
│       │   │   ├── gh1524.d.ts
│       │   │   ├── gh1534.ts
│       │   │   ├── gh1547.ts
│       │   │   ├── gh1552.ts
│       │   │   ├── gh1578/
│       │   │   │   ├── ignored.ts
│       │   │   │   └── index.ts
│       │   │   ├── gh1580.ts
│       │   │   ├── gh1624.ts
│       │   │   ├── gh1626.ts
│       │   │   ├── gh1651.ts
│       │   │   ├── gh1660.ts
│       │   │   ├── gh1733.ts
│       │   │   ├── gh1734.ts
│       │   │   ├── gh1745.ts
│       │   │   ├── gh1770.ts
│       │   │   ├── gh1771.ts
│       │   │   ├── gh1795.ts
│       │   │   ├── gh1804.js
│       │   │   ├── gh1875.ts
│       │   │   ├── gh1876.ts
│       │   │   ├── gh1880.d.ts
│       │   │   ├── gh1896.js
│       │   │   ├── gh1898.ts
│       │   │   ├── gh1903.ts
│       │   │   ├── gh1903b.ts
│       │   │   ├── gh1907/
│       │   │   │   ├── index.ts
│       │   │   │   └── package.json
│       │   │   ├── gh1913.js
│       │   │   ├── gh1927.ts
│       │   │   ├── gh1942.ts
│       │   │   ├── gh1961.ts
│       │   │   ├── gh1962.ts
│       │   │   ├── gh1963.ts
│       │   │   ├── gh1967.ts
│       │   │   ├── gh1968.ts
│       │   │   ├── gh1973/
│       │   │   │   ├── a.ts
│       │   │   │   ├── b.ts
│       │   │   │   └── index.ts
│       │   │   ├── gh1980.ts
│       │   │   ├── gh1986.ts
│       │   │   ├── gh1994.ts
│       │   │   ├── gh1996.ts
│       │   │   ├── gh2008.ts
│       │   │   ├── gh2011.ts
│       │   │   ├── gh2012.ts
│       │   │   ├── gh2019.ts
│       │   │   ├── gh2020.js
│       │   │   ├── gh2031.ts
│       │   │   ├── gh2033.ts
│       │   │   ├── gh2036.ts
│       │   │   ├── gh2042.ts
│       │   │   ├── gh2044/
│       │   │   │   ├── index.js
│       │   │   │   └── other.js
│       │   │   ├── gh2064.ts
│       │   │   ├── gh2079.ts
│       │   │   ├── gh2087.ts
│       │   │   ├── gh2106.ts
│       │   │   ├── gh2135.ts
│       │   │   ├── gh2150/
│       │   │   │   ├── index.ts
│       │   │   │   └── int.ts
│       │   │   ├── gh2156.ts
│       │   │   ├── gh2165.ts
│       │   │   ├── gh2175.ts
│       │   │   ├── gh2200.ts
│       │   │   ├── gh2207/
│       │   │   │   ├── index.ts
│       │   │   │   └── mod.ts
│       │   │   ├── gh2220.ts
│       │   │   ├── gh2222.ts
│       │   │   ├── gh2233.ts
│       │   │   ├── gh2234.ts
│       │   │   ├── gh2270.ts
│       │   │   ├── gh2290.ts
│       │   │   ├── gh2291.ts
│       │   │   ├── gh2296.ts
│       │   │   ├── gh2307.ts
│       │   │   ├── gh2320.ts
│       │   │   ├── gh2336.ts
│       │   │   ├── gh2360.ts
│       │   │   ├── gh2364.ts
│       │   │   ├── gh2372.ts
│       │   │   ├── gh2384.js
│       │   │   ├── gh2389.js
│       │   │   ├── gh2401.d.ts
│       │   │   ├── gh2414.ts
│       │   │   ├── gh2430.js
│       │   │   ├── gh2436.ts
│       │   │   ├── gh2437.ts
│       │   │   ├── gh2438.d.ts
│       │   │   ├── gh2444.ts
│       │   │   ├── gh2451.ts
│       │   │   ├── gh2466.ts
│       │   │   ├── gh2476.ts
│       │   │   ├── gh2478.ts
│       │   │   ├── gh2495.ts
│       │   │   ├── gh2496.ts
│       │   │   ├── gh2502.ts
│       │   │   ├── gh2507.ts
│       │   │   ├── gh2508.ts
│       │   │   ├── gh2509.ts
│       │   │   ├── gh2521.d.ts
│       │   │   ├── gh2524.ts
│       │   │   ├── gh2545.ts
│       │   │   ├── gh2552.js
│       │   │   ├── gh2553.ts
│       │   │   ├── gh2555.ts
│       │   │   ├── gh2574/
│       │   │   │   ├── default.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── notDefault.ts
│       │   │   │   └── reexported.ts
│       │   │   ├── gh2582.ts
│       │   │   ├── gh2585.ts
│       │   │   ├── gh2587.ts
│       │   │   ├── gh2603.ts
│       │   │   ├── gh2611.d.ts
│       │   │   ├── gh2614.ts
│       │   │   ├── gh2631/
│       │   │   │   ├── crlf.md
│       │   │   │   └── index.ts
│       │   │   ├── gh2634.ts
│       │   │   ├── gh2636.ts
│       │   │   ├── gh2638/
│       │   │   │   ├── empty.md
│       │   │   │   └── index.ts
│       │   │   ├── gh2644.ts
│       │   │   ├── gh2683.ts
│       │   │   ├── gh2693.ts
│       │   │   ├── gh2698.ts
│       │   │   ├── gh2700.ts
│       │   │   ├── gh2704.ts
│       │   │   ├── gh2718.ts
│       │   │   ├── gh2719.ts
│       │   │   ├── gh2721.ts
│       │   │   ├── gh2725.ts
│       │   │   ├── gh2755.ts
│       │   │   ├── gh2774/
│       │   │   │   ├── gh2774.ts
│       │   │   │   ├── globalAugment.ts
│       │   │   │   └── moduleAugment.ts
│       │   │   ├── gh2778.ts
│       │   │   ├── gh2779.ts
│       │   │   ├── gh2792.ts
│       │   │   ├── gh2800.ts
│       │   │   ├── gh2802.ts
│       │   │   ├── gh2811.ts
│       │   │   ├── gh2817.ts
│       │   │   ├── gh2820.ts
│       │   │   ├── gh2823.ts
│       │   │   ├── gh2842.ts
│       │   │   ├── gh2844.ts
│       │   │   ├── gh2856.ts
│       │   │   ├── gh2876.ts
│       │   │   ├── gh2881.ts
│       │   │   ├── gh2909.js
│       │   │   ├── gh2914.ts
│       │   │   ├── gh2916.js
│       │   │   ├── gh2917.ts
│       │   │   ├── gh2920.ts
│       │   │   ├── gh2929.js
│       │   │   ├── gh2932.ts
│       │   │   ├── gh2937/
│       │   │   │   ├── index.ts
│       │   │   │   └── not-excluded.ts
│       │   │   ├── gh2949.js
│       │   │   ├── gh2954.ts
│       │   │   ├── gh2962.ts
│       │   │   ├── gh2964.d.ts
│       │   │   ├── gh2970.ts
│       │   │   ├── gh2978.ts
│       │   │   ├── gh2994.d.ts
│       │   │   ├── gh2999.ts
│       │   │   ├── gh3003/
│       │   │   │   ├── enums.ts
│       │   │   │   └── index.ts
│       │   │   ├── gh3006/
│       │   │   │   ├── index.ts
│       │   │   │   └── two words.md
│       │   │   ├── gh3009.ts
│       │   │   ├── gh3012.ts
│       │   │   ├── gh3017.ts
│       │   │   ├── gh3019.ts
│       │   │   ├── gh3020.ts
│       │   │   ├── gh3024.ts
│       │   │   ├── gh3026.js
│       │   │   ├── gh3031.js
│       │   │   ├── gh3050.js
│       │   │   ├── gh3064.ts
│       │   │   ├── gh3070.ts
│       │   │   ├── gh3071.ts
│       │   │   ├── gh567.ts
│       │   │   ├── gh671.js
│       │   │   ├── gh869.ts
│       │   │   └── gh941.ts
│       │   ├── package.json
│       │   ├── renderer/
│       │   │   ├── doc.md
│       │   │   ├── expandType.ts
│       │   │   ├── gh2982.ts
│       │   │   ├── gh2995.ts
│       │   │   ├── gh3007.ts
│       │   │   ├── gh3014.ts
│       │   │   ├── gh3052.ts
│       │   │   ├── index.ts
│       │   │   └── renderer-readme.md
│       │   ├── tsconfig.json
│       │   ├── typedoc.json
│       │   └── validation/
│       │       ├── callbackParameters.ts
│       │       ├── class.ts
│       │       ├── externalType.ts
│       │       ├── function.ts
│       │       ├── getSignature.ts
│       │       ├── implemented.ts
│       │       ├── indexSignature.ts
│       │       ├── intentionallyNotDocumented.ts
│       │       ├── interface.ts
│       │       ├── namespace.ts
│       │       ├── object.ts
│       │       ├── parameter.ts
│       │       ├── return.ts
│       │       ├── setSignature.ts
│       │       ├── typeParameter.ts
│       │       ├── unusedMergeModuleWith.ts
│       │       └── variable.ts
│       ├── declarationReference.test.ts
│       ├── internationalization.test.ts
│       ├── issues.c2.test.ts
│       ├── merge.test.ts
│       ├── models/
│       │   ├── comment.test.ts
│       │   ├── kind.test.ts
│       │   ├── reflections.test.ts
│       │   └── types.test.ts
│       ├── module/
│       │   ├── a.ts
│       │   └── b.ts
│       ├── output/
│       │   ├── Slugger.test.ts
│       │   ├── formatter.test.ts
│       │   ├── lib.test.tsx
│       │   ├── output.test.ts
│       │   └── router.test.ts
│       ├── packages.test.ts
│       ├── plugins/
│       │   ├── absolute.ts
│       │   └── relative.ts
│       ├── programs.ts
│       ├── project.test.ts
│       ├── renderer/
│       │   ├── DefaultTheme.test.ts
│       │   ├── specs/
│       │   │   ├── classes/
│       │   │   │   ├── BaseClass.json
│       │   │   │   ├── GH3007.DOMBase.json
│       │   │   │   ├── GH3007.DOMClass.json
│       │   │   │   ├── GH3014.json
│       │   │   │   ├── GH3052.CustomPromise.json
│       │   │   │   ├── GH3052.PromiseReference.json
│       │   │   │   ├── GenericClass.json
│       │   │   │   ├── ModifiersClass.json
│       │   │   │   └── RenderClass.json
│       │   │   ├── documents/
│       │   │   │   └── doc.json
│       │   │   ├── enums/
│       │   │   │   └── Enumeration.json
│       │   │   ├── functions/
│       │   │   │   └── box.json
│       │   │   ├── hierarchy.json
│       │   │   ├── index.json
│       │   │   ├── interfaces/
│       │   │   │   ├── BaseInterface.json
│       │   │   │   ├── DisabledGroups.json
│       │   │   │   ├── ExpandType.ExpandedByDefault.json
│       │   │   │   ├── GH2982.TMXDataNode.json
│       │   │   │   ├── GH3007.DOMIterable.json
│       │   │   │   ├── NoneCategory.json
│       │   │   │   ├── NoneGroup.json
│       │   │   │   └── gh2995.json
│       │   │   ├── modules/
│       │   │   │   ├── ExpandType.NestedBehavior1.json
│       │   │   │   ├── ExpandType.json
│       │   │   │   ├── GH2982.json
│       │   │   │   ├── GH3007.json
│       │   │   │   └── GH3052.json
│       │   │   ├── modules.json
│       │   │   └── types/
│       │   │       ├── ExpandType.AExpanded.json
│       │   │       ├── ExpandType.BExpanded.json
│       │   │       ├── ExpandType.Expandable.json
│       │   │       ├── ExpandType.Expandable2.json
│       │   │       ├── ExpandType.NestedBehavior1.AExpanded.json
│       │   │       ├── ExpandType.NestedBehavior1.AllExpanded.json
│       │   │       ├── GH2982.TMXNode.json
│       │   │       ├── Nested.json
│       │   │       └── UnionComments.json
│       │   └── testRendererUtils.ts
│       ├── slow/
│       │   ├── README.md
│       │   ├── entry-point.test.ts
│       │   └── internationalization-usage.test.ts
│       ├── utils/
│       │   ├── fs.test.ts
│       │   ├── general.test.ts
│       │   ├── html.test.ts
│       │   ├── languageAliases.test.ts
│       │   ├── minimalSourceFile.test.ts
│       │   ├── options/
│       │   │   ├── declaration.test.ts
│       │   │   ├── default-options.test.ts
│       │   │   ├── help.test.ts
│       │   │   ├── options.test.ts
│       │   │   ├── readers/
│       │   │   │   ├── arguments.test.ts
│       │   │   │   ├── package-json.test.ts
│       │   │   │   ├── tsconfig.test.ts
│       │   │   │   └── typedoc.test.ts
│       │   │   └── tsdoc-defaults.test.ts
│       │   ├── paths.test.ts
│       │   ├── plugins.test.ts
│       │   └── sort.test.ts
│       ├── utils-common/
│       │   ├── array.test.ts
│       │   ├── enum.test.ts
│       │   ├── events.test.ts
│       │   ├── hooks.test.ts
│       │   ├── jsx.test.tsx
│       │   ├── map.test.ts
│       │   ├── path.test.ts
│       │   └── validation.test.ts
│       ├── utils.ts
│       └── validation.test.ts
├── static/
│   └── style.css
├── tsconfig.json
└── tsdoc.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .config/mocha.fast.json
================================================
{
    "$schema": "https://json.schemastore.org/mocharc.json",
    "exclude": ["src/test/packages/**", "src/test/slow/**"],
    "extension": ["ts", "cts", "mts", "tsx"],
    "spec": ["src/test/**/*.test.ts", "src/test/**/*.test.tsx"],
    "timeout": 5000,
    "watch-files": ["src/**/*.ts", "src/**/*.tsx"],
    "node-option": ["import=tsx", "conditions=typedoc-ts"]
}


================================================
FILE: .config/mocha.full.json
================================================
{
    "$schema": "https://json.schemastore.org/mocharc.json",
    "timeout": 0,
    "spec": ["src/test/**/*.test.ts", "src/test/**/*.test.tsx"],
    "exclude": ["src/test/packages/**"],
    "node-option": ["import=tsx", "conditions=typedoc-ts"]
}


================================================
FILE: .config/mocha.test-explorer.json
================================================
{
    "$schema": "https://json.schemastore.org/mocharc.json",
    "extension": ["ts"],
    "ignore": [],
    "package": "./package.json",
    "node-option": ["import=tsx", "conditions=typedoc-ts"],
    "slow": 500,
    "spec": ["src/**/*.test.ts", "src/**/*.test.tsx"],
    "timeout": 0,
    "watch-files": ["src/**/*.ts", "src/**/*.tsx"]
}


================================================
FILE: .config/regconfig.json
================================================
{
    "core": {
        "workingDir": "dist/tmp/.reg",
        "actualDir": "dist/tmp/__screenshots__",
        "thresholdRate": 0.001,
        "addIgnore": true,
        "ximgdiff": {
            "invocationType": "client"
        }
    }
}


================================================
FILE: .config/typedoc.json
================================================
{
    "$schema": "https://typedoc.org/schema.json",
    "intentionallyNotExported": [
        "SORT_STRATEGIES",
        "_ModelToObject",
        "EventHooksMomento",
        "MarkedPlugin",
        "MeaningKeywords"
    ],
    "sort": [
        "kind",
        "instance-first",
        "required-first",
        "alphabetical-ignoring-documents"
    ],
    "name": "TypeDoc API",

    // Don't document the debug entry point
    "entryPoints": ["../src/index.ts"],
    "outputs": [
        {
            "name": "html",
            "path": "../docs"
        },
        {
            "name": "json",
            "path": "../docs/docs.json"
        }
    ],

    "excludeExternals": true,
    "externalPattern": ["**/node_modules/**", "../src/lib/types/**"],
    "excludeInternal": false,
    "excludePrivate": true,
    // "excludeReferences": true,
    "groupReferencesByType": true,
    "jsDocCompatibility": false,
    "treatWarningsAsErrors": false,
    "categorizeByGroup": false,
    "categoryOrder": ["Reflections", "Types", "Comments", "*"],
    "groupOrder": ["Common", "Namespaces", "*"],
    "hostedBaseUrl": "https://typedoc.org/example/",
    "navigationLinks": {
        "Docs": "https://typedoc.org",
        "Example": "https://typedoc.org/example/index.html",
        "GitHub": "https://github.com/TypeStrong/typedoc"
    },
    "validation": {
        "notExported": true,
        "invalidLink": true,
        "notDocumented": false
    },
    "visibilityFilters": {
        "protected": false,
        "private": false,
        "inherited": true,
        "external": false,
        "@internal": false
    },
    "searchInComments": true,
    "searchInDocuments": true,
    "searchGroupBoosts": {
        "Classes": 5.0,
        "Interfaces": 2.0,
        "Enumerations": 2.0,
        "Type Aliases": 2.0
    },
    "navigation": {
        "includeCategories": true,
        "includeGroups": false,
        "excludeReferences": true
    },
    "includeVersion": true,
    "logLevel": "Verbose",
    "externalSymbolLinkMappings": {
        "@types/markdown-it": {
            "MarkdownIt": "https://markdown-it.github.io/markdown-it/#MarkdownIt"
        }
    },

    // Saves a couple seconds when generating docs
    "skipErrorChecking": true
}


================================================
FILE: .editorconfig
================================================
# https://editorconfig.org

root = true

[*]
charset = utf-8
indent_style = space
indent_size = 4
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[package.json]
indent_size = 2

[src/test/converter2/issues/gh2631/crlf.md]
end_of_line = crlf


================================================
FILE: .gitattributes
================================================
# Disable core.autocrlf's line ending conversion behavior to prevent test failures on Windows
* text=auto eol=lf
src/test/converter2/issues/gh2631/crlf.md text=auto eol=crlf

*.png binary
*.psd binary


================================================
FILE: .github/CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
  and learning from the experience
- Focusing on what is best not just for us as individuals, but for the
  overall community

Examples of unacceptable behavior include:

- The use of sexualized language or imagery, and sexual attention or
  advances of any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email
  address, without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a
  professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
typedoc@gerritbirkeland.com.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series
of actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0].

Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][mozilla coc].

For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][faq]. Translations are available
at [https://www.contributor-covenant.org/translations][translations].

[homepage]: https://www.contributor-covenant.org
[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
[mozilla coc]: https://github.com/mozilla/diversity
[faq]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations


================================================
FILE: .github/CONTRIBUTING.md
================================================
# Contributing to TypeDoc

Thanks for taking the time to contribute! TypeDoc is a volunteer-run project and we couldn't do it without your help.

This document includes a set of guidelines for contributing to TypeDoc. These are guidelines, not rules. If something seems off, please feel free to propose changes to this document in a pull request.

## Table of Contents

- [Contributing to TypeDoc](#contributing-to-typedoc)
  - [Table of Contents](#table-of-contents)
  - [How Can I Contribute?](#how-can-i-contribute)
    - [Bug Reports](#bug-reports)
    - [Suggestions](#suggestions)
    - [Documentation](#documentation)
    - [Code](#code)
  - [Setup - Git, GitHub, and Node](#setup---git-github-and-node)
    - [Installation](#installation)
  - [Linting, Building, and Testing](#linting-building-and-testing)
    - [Linting](#linting)
    - [Building](#building)
    - [Testing](#testing)
  - [Pull Requests](#pull-requests)
  - [Updating Your Branch](#updating-your-branch)

## How Can I Contribute?

### Bug Reports

This section guides you through submitting a bug report for TypeDoc. Following these guidelines helps others understand your report and resolve the issue.

Before creating a bug report please check [this list][bugs] to see if it has already been reported. If the issue is closed, please open a new issue and link it to the original issue.

When creating a bug report, explain the problem and include as much additional information as necessary to help maintainers to reproduce it. Ideally, provide an example project which highlights the problem.

- **Use a clear and descriptive title** for the issue to identify the problem
- **Describe your project setup**. The easier it is for maintainers to reproduce your problem, the more likely it is to be quickly fixed.
- **Explain what you expected to see instead and why**

### Suggestions

This section guides you through submitting an enhancement suggestion for Typedoc.

Before creating a feature request, please check [this list][suggestions] to see if it has already been requested.

When creating an enhancement request, explain your use case and ultimate goal. This will make it possible for contributors to suggest existing alternatives which may already meet your requirements.

- **Use a clear and descriptive title** for the issue to identify the suggestion.
- **Provide an example where this enhancement would improve TypeDoc**
- **If possible, list another documentation generator where this feature exists**

### Documentation

TypeDoc is documented in 4 primary areas.

- This repo's [README.md](https://github.com/TypeStrong/typedoc/blob/master/README.md)
- The website guides hosted at [TypeStrong/typedoc-site](https://github.com/TypeStrong/typedoc-site/)
- Doc comments of source files which are rendered in the [api docs](https://typedoc.org/api/)
- The [option descriptions](https://github.com/TypeStrong/typedoc/blob/ce0654295698e2bb2badf5f93d388bd977da3c46/src/lib/application.ts#L66) used by the `--help` command

If you would like to improve the documentation in any of these areas, please open an issue if there isn't one already to discuss what you would like to improve. Then submit a [Pull Request](#pull-requests) to this repo, (or to [TypeStrong/typedoc-site](https://github.com/TypeStrong/typedoc-site/) in the case of guides).

### Code

Unsure of where to begin contributing to TypeDoc? You can start by looking through the issues labeled [good-first-issue] and [help-wanted]. Issues labeled with [good-first-issue] should only require changing a few lines of code and a test or two. Issues labeled with [help-wanted] can be considerably more involved and may require changing multiple files.

For instructions on setting up your environment, see the [setup](#setup---git-github-and-node) instructions in this document.
Once set up, you may find the [development](https://typedoc.org/guides/development/) page useful for an overview of TypeDoc's architecture.

If you have started work on an issue and get stuck or want a second opinion on your implementation feel free to reach out through [Discord].

## Setup - Git, GitHub, and Node

If you don't already have [Git] installed, install it first. You will need it to contribute to TypeDoc. You will also need to install [Node] and pnpm.

#### Installation

1. Fork the TypeDoc repository - https://github.com/TypeStrong/typedoc/fork
1. Open a terminal, or "Git Bash" on Windows.
1. Use `cd` to move to the directory that you want to work in.
1. Clone your repository, replace USER with your GitHub username:
   ```bash
   git clone https://github.com/USER/typedoc
   ```
1. Add the TypeDoc repo as a remote repository
   ```bash
   git remote add typedoc https://github.com/TypeStrong/typedoc
   ```
1. Install dependencies:
   ```bash
   pnpm install
   ```
1. Build:
   ```bash
   pnpm build
   ```
1. Open the typedoc folder in your favorite editor. If you don't have one, try [Visual Studio Code][vscode]

## Linting, Building, and Testing

Once you have cloned TypeDoc, you can lint, build, and test the code from your terminal.

#### Linting

To lint the TypeDoc code, run `pnpm run lint`. This will start eslint and check all files for stylistic problems. You can also install an eslint plugin for your editor to show most style problems as you type.

You can automatically fix some style problems by running `pnpx dprint fmt`.

#### Building

To compile the TypeDoc source, run `pnpm build`. This will start the TypeScript compiler and output the compiled JavaScript to the `dist` folder.

#### Testing

TypeDoc includes an extensive set of tests that describe its output. To validate any changes you have made run `pnpm test`.
This will run a subset of TypeDoc's tests intended for quick development checks.
Tests which take more than half a second are located in `src/test/slow`, and will only be run if you run `pnpm run test:full`.

If you have changed the TypeDoc output, it will cause tests to fail. Once you have validated that the introduced changes were intended, run `pnpm run rebuild_specs` to update the spec files for the new output.

Additional tests are contained within the `converter2` directory that look for specific issues with previous
builds and may be more appropriate for adding a test for a bugfix.

#### Visual Regression Testing

There is also a script to visually compare the differences between changes. To set this up, build the code, then run `node scripts/visual_regression.js`. This will create a baseline which future runs will be compared against after making changes, compiling, and running the visual regression script again.

## Pull Requests

Once you have finished working on an issue, you can submit a pull request to have your changes merged into the TypeDoc repository and included in the next release.

Before submitting a pull request, make sure that there are no linting problems (`pnpm run lint`), all tests pass (`pnpm test`), and your branch is up to date. Its also a good idea to join the TypeScript [discord] and visit the `#typedoc` channel to discuss how best to implement changes.

If your change is user facing, consider updating `CHANGELOG.md` to describe the change you have made. If you don't, the maintainer who merges your pull request will do it for you.

Please do not change the project version number in a pull request unless submitting a patch to the `lts` branch.

## Updating Your Branch

If the TypeDoc repository has changed since you originally forked it, you will need to update your repository with the latest changes before submitting a pull request. To pull the latest changes from the TypeDoc repo, run `git pull typedoc master`.

[bugs]: https://github.com/TypeStrong/typedoc/labels/bug
[suggestions]: https://github.com/TypeStrong/typedoc/labels/enhancement
[good-first-issue]: https://github.com/TypeStrong/typedoc/labels/good%20first%20issue
[help-wanted]: https://github.com/TypeStrong/typedoc/labels/help%20wanted
[discord]: https://discord.com/invite/typescript
[github]: https://github.com
[git]: https://git-scm.com
[node]: https://nodejs.org/en/
[vscode]: https://code.visualstudio.com/


================================================
FILE: .github/FUNDING.yml
================================================
github: gerrit0


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug Report
about: Report a bug in TypeDoc
type: Bug
---

## Search terms

<!-- Include keywords that might help others with the same problem find this issue -->

## Expected Behavior

<!-- How did you expect Typedoc to work? -->

## Actual Behavior

<!-- What does Typedoc fail to do? -->

## Steps to reproduce the bug

<!--
Note: Turn off skipErrorChecks before reporting a crash. Bug reports for crashes with that option
on are out of scope.

Note: Please try to reproduce the issue WITHOUT any plugins enabled before reporting a bug.

If possible, please create a *minimal* repo reproducing your problem.
If it is more than a single small file, please submit a pull request to
https://github.com/TypeStrong/typedoc-repros
which changes the files necessary to reproduce your bug.

If this is not possible, include at least:
    1. Installed packages + versions
    2. The code TypeDoc doesn't work on
    3. tsconfig.json
    4. How you are running TypeDoc + any relevant configuration files
-->

## Environment

- TypeDoc version:
- TypeScript version:
- Node.js version:
- OS:


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
contact_links:
    - name: Discussions
      url: https://github.com/TypeStrong/typedoc/discussions
      about: Please ask questions here.


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature Request
about: Suggest improvements or new features
type: Feature
---

## Search Terms

<!-- Include keywords that might help others with the same problem find this issue -->

## Problem

<!-- What is missing or inconvenient without this improvement or feature? -->

## Suggested Solution

<!-- How do you suggest fixing the problem? Do any other tools already do it? -->


================================================
FILE: .github/SECURITY.md
================================================
# Security Policy

## Supported Versions

The TypeDoc team supports the latest minor version. For one minor version prior to the latest,
pull requests providing patches to fix security vulnerabilities will be accepted. Support for the
previous minor version relies completely on community pull requests.

See https://typedoc.org/documents/Overview.html for the current status.

## Patching LTS Versions

If you depend on the prior minor version of TypeDoc and want to submit a fix, submit a pull request
to the `lts` branch. When merged, a new version will be automatically published with your patch.

Be sure to include an update to the version field in `package.json`.

Note: Only pull requests which fix security vulnerabilities will be accepted. Additional features and bug fixes are out of scope for old versions.


================================================
FILE: .github/workflows/build-site.yml
================================================
name: Build Site
on:
    push:
    pull_request:
    schedule:
        - cron: "0 5 * * *"
jobs:
    build:
        runs-on: ubuntu-latest
        name: Build Site
        steps:
            - name: Checkout repository
              uses: actions/checkout@v4
              with:
                  fetch-depth: 0
            - name: Set up Node
              uses: actions/setup-node@v4
              with:
                  node-version: 20
            - name: Set up pnpm
              run: npm i -g pnpm@10
            - name: Install
              run: pnpm install
            - name: Build
              run: pnpm run build
            - name: Build Site
              run: ./scripts/build_site.sh
            - name: Upload static files as artifact
              id: deployment
              uses: actions/upload-pages-artifact@v3
              with:
                  path: docs-site/
    deploy:
        needs: build
        if: github.ref == 'refs/heads/master'
        name: Deploy
        permissions:
            pages: write
            id-token: write
        environment:
            name: github-pages
            url: ${{ steps.deployment.outputs.page_url }}

        runs-on: ubuntu-latest
        steps:
            - name: Deploy to GitHub Pages
              id: deployment
              uses: actions/deploy-pages@v4


================================================
FILE: .github/workflows/ci.yml
================================================
name: CI
on: [push, pull_request]
jobs:
    build:
        runs-on: ubuntu-latest
        strategy:
            matrix:
                node: ["18", "20", "22.4.1", "23"]
        name: Node ${{ matrix.node }}
        steps:
            - name: Checkout repository
              uses: actions/checkout@v4
            - name: Set up Node
              uses: actions/setup-node@v4
              with:
                  node-version: ${{ matrix.node }}
            - name: Set up pnpm
              run: npm i -g pnpm@10
            - name: Install
              run: pnpm install
            - name: Build
              run: pnpm run build
            - name: Test
              run: |
                  if node -e "process.exit(Number(+process.versions.node.slice(0, 2) < 23))"; then
                    export NODE_OPTIONS="--no-experimental-strip-types"
                  fi
                  pnpm run test:full
            - name: Lint
              run: pnpm run lint
            - name: Circular dependency check
              uses: gerrit0/circular-dependency-check@v2.0.2
              with:
                  entry: |
                    dist/index.js
                    dist/lib/models/index.js
                    dist/browser-utils.js
    build-release:
        runs-on: ubuntu-latest
        name: Node 22 Release
        steps:
            - name: Checkout repository
              uses: actions/checkout@v4
            - name: Set up Node
              uses: actions/setup-node@v4
              with:
                  node-version: 22.4.1
            - name: Set up pnpm
              run: npm i -g pnpm@10
            - name: Install
              run: pnpm install
            - name: Build
              run: |
                  node scripts/set_strict.js false
                  pnpm run build
            - name: Test
              run: pnpm run test:full
            - name: Lint
              run: pnpm run lint
    build-windows:
        runs-on: windows-latest
        name: Node 18 Windows
        steps:
            - name: Checkout repository
              uses: actions/checkout@v4
            - name: Set up Node
              uses: actions/setup-node@v4
              with:
                  node-version: 18
            - name: Set up pnpm
              run: npm i -g pnpm@10
            - name: Install
              run: pnpm install
            - name: Build
              run: pnpm run build
            - name: Test
              run: pnpm run test:full
            - name: Lint
              run: pnpm run lint


================================================
FILE: .github/workflows/publish-beta.yml
================================================
name: Publish Beta
on:
    push:
        branches:
            - beta
jobs:
    npm-publish:
        name: npm-publish
        runs-on: ubuntu-latest
        steps:
            - name: Checkout repository
              uses: actions/checkout@v4
            - id: check
              uses: EndBug/version-check@v2.1.4
              with:
                  diff-search: true
            - name: Set up Node
              if: steps.check.outputs.changed == 'true' && contains(steps.check.outputs.version, 'beta')
              uses: actions/setup-node@v4
              with:
                  node-version: "18"
            - name: Setup pnpm
              if: steps.check.outputs.changed == 'true' && contains(steps.check.outputs.version, 'beta')
              run: npm i -g pnpm@10
            - name: Install
              if: steps.check.outputs.changed == 'true' && contains(steps.check.outputs.version, 'beta')
              run: pnpm install
            - name: Test
              if: steps.check.outputs.changed == 'true' && contains(steps.check.outputs.version, 'beta')
              run: pnpm test
            - name: Publish
              if: steps.check.outputs.changed == 'true' && contains(steps.check.outputs.version, 'beta')
              # We need --no-git-checks because we swap a boolean to allow more lax types
              # in the published package.
              run: pnpm publish --tag beta --no-git-checks
              env:
                npm_config_//registry.npmjs.org/:_authToken: ${{ secrets.NPM_AUTH_TOKEN }}


================================================
FILE: .github/workflows/publish-lts.yml
================================================
name: Publish LTS
on:
    push:
        branches:
            - lts
jobs:
    npm-publish:
        name: npm-publish
        runs-on: ubuntu-latest
        steps:
            - name: Checkout repository
              uses: actions/checkout@v4
            - id: check
              uses: EndBug/version-check@v2.1.4
              with:
                  diff-search: true
            - name: Set up Node
              if: steps.check.outputs.changed == 'true'
              uses: actions/setup-node@v4
              with:
                  node-version: "18"
            - name: Set up pnpm
              if: steps.check.outputs.changed == 'true'
              run: npm i -g pnpm@10
            - name: Install
              if: steps.check.outputs.changed == 'true'
              run: pnpm install
            - name: Test
              if: steps.check.outputs.changed == 'true'
              run: pnpm test
            - name: Publish
              if: steps.check.outputs.changed == 'true'
              # We need --no-git-checks because we swap a boolean to allow more lax types
              # in the published package.
              run: pnpm publish --tag lts --no-git-checks
              env:
                npm_config_//registry.npmjs.org/:_authToken: ${{ secrets.NPM_AUTH_TOKEN }}


================================================
FILE: .github/workflows/publish.yml
================================================
name: Publish
on:
    push:
        branches:
            - master

permissions:
    id-token: write # Required for OIDC
    contents: write # Required for git tag

jobs:
    npm-publish:
        name: npm-publish
        runs-on: ubuntu-latest
        steps:
            - name: Checkout repository
              uses: actions/checkout@v4
              with:
                  fetch-depth: 0
            - id: check
              uses: EndBug/version-check@v2.1.4
              with:
                  diff-search: true
            - name: Set up Node
              if: steps.check.outputs.changed == 'true'
              uses: actions/setup-node@v4
              with:
                  node-version: "24"
            - name: Set up pnpm
              if: steps.check.outputs.changed == 'true'
              run: npm i -g pnpm@10
            - name: Install
              if: steps.check.outputs.changed == 'true'
              run: pnpm install
            - name: Test
              if: steps.check.outputs.changed == 'true'
              run: pnpm test
            - name: Publish
              if: steps.check.outputs.changed == 'true'
              # We need --no-git-checks because we swap a boolean to allow more lax types
              # in the published package and generate some files for publishing.
              run: pnpm publish --no-git-checks
            - name: Generate Release
              if: steps.check.outputs.changed == 'true'
              run: |
                  git config user.email "typedoc@gerritbirkeland.com"
                  git config user.name "TypeDoc Bot"
                  node scripts/create_release.js
              env:
                  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}


================================================
FILE: .gitignore
================================================
.DS_Store
.idea
.vs
.tscache
.baseDir.js
.baseDir.ts
*.swp
yarn.lock
.nyc_output
yarn-error.log
typedoc-config.schema.json

/src/test/renderer/*/doc
/src/test/renderer/testProject/json.json
**/node_modules/
!src/test/converter2/behavior/node_modules/
!src/test/converter2/renderer/node_modules/
/coverage/
/dist/
/docs
/docs2
/docs-*
/td*.json

typedoc*.tgz
tmp
/*.0x/

src/test/renderer/specs/assets/*
src/test/renderer/specs/specs.json

# Built theme JS
static/main.js

/example/docs/


================================================
FILE: .npmrc
================================================
# If these were only for production, we'd care, but there's no
# way to ask pnpm to only report production audit findings when doing
# an install, so just turn it off. We can still check for findings
# with pnpm audit --production.
audit = false

# While we're on the TS beta, need this flag.
legacy-peer-deps = true

# This breaks some of the scripts in the scripts directory
update-notifier = false


================================================
FILE: .vscode/extensions.json
================================================
{
    "recommendations": [
        "hbenl.vscode-test-explorer",
        "hbenl.vscode-mocha-test-adapter",
        "dprint.dprint"
    ]
}


================================================
FILE: .vscode/launch.json
================================================
{
    // Use IntelliSense to learn about possible Node.js debug attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "args": [
                "--import=tsx",
                "--timeout",
                "0",
                "--config",
                "${workspaceFolder}/.config/mocha.fast.json"
            ],
            "internalConsoleOptions": "openOnSessionStart",
            "name": "Debug Tests",
            "program": "${workspaceFolder}/node_modules/mocha/bin/mocha.js",
            "request": "launch",
            "skipFiles": ["<node_internals>/**"],
            "type": "node"
        },
        {
            "name": "Attach",
            "port": 9229,
            "request": "attach",
            "internalConsoleOptions": "openOnSessionStart",
            "skipFiles": ["<node_internals>/**"],
            "type": "node",
            "sourceMaps": true
        }
    ]
}


================================================
FILE: .vscode/settings.json
================================================
{
    "files.associations": {
        "tsdoc.json": "jsonc", // TSDoc allows comments.
        "typedoc.json": "jsonc" // TypeDoc uses the JSONC parser for its configuration files.
    },

    "typescript.tsdk": "./node_modules/typescript/lib",
    "dprint.path": "./node_modules/dprint/dprint",

    // Automatically run the formatter when certain files are saved.
    "[javascript]": {
        "editor.defaultFormatter": "dprint.dprint",
        "editor.formatOnSave": true,
        "editor.tabSize": 4
    },
    "[typescript]": {
        "editor.defaultFormatter": "dprint.dprint",
        "editor.formatOnSave": true,
        "editor.tabSize": 4
    },
    "[typescriptreact]": {
        "editor.defaultFormatter": "dprint.dprint",
        "editor.formatOnSave": true,
        "editor.tabSize": 4
    },
    "[json]": {
        "editor.defaultFormatter": "dprint.dprint",
        "editor.formatOnSave": true,
        "editor.tabSize": 4
    },
    "[jsonc]": {
        "editor.defaultFormatter": "dprint.dprint",
        "editor.formatOnSave": true,
        "editor.tabSize": 4
    },
    "[css]": {
        "editor.defaultFormatter": "dprint.dprint",
        "editor.formatOnSave": true,
        "editor.tabSize": 4
    },

    "mochaExplorer.nodeArgv": ["--import=tsx", "--conditions=typedoc-ts"],

    "eslint.workingDirectories": [".", "./example"],
    "mochaExplorer.configFile": ".config/mocha.test-explorer.json",
    "cSpell.ignoreRegExpList": [
        // Ignore usernames in the Thanks sections of the changelog
        "/^- +@[A-Z0-9_-]+/igm",
        // Ignore combined hashes in JSON output for rendering testing
        "/#[a-z0-9_]+\"/"
    ],
    "cSpell.words": [
        "callouts",
        "cname",
        "Combinatorially",
        "deconfliction",
        "deserializers",
        "dprint",
        "frontmatter",
        "githubprivate",
        "hideconstructor",
        "linkcode",
        "linkify",
        "linkplain",
        "momento",
        "Msys",
        "nodoc",
        "shiki",
        "srcset",
        "tsbuildinfo",
        "tsdoc",
        "typedoc",
        "typeof",
        "typestrong",
        "uncategorized",
        "WCAG"
    ]
}


================================================
FILE: .vscode/tasks.json
================================================
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build-tsc",
            "type": "npm",
            "script": "build:tsc",
            "problemMatcher": ["$tsc"],
            "detail": "Build TypeDoc w/ tsc",
            "presentation": {
                "group": "build",
                "panel": "dedicated"
            },
            "group": {
                "kind": "build"
            }
        },
        {
            "label": "build-themes",
            "type": "npm",
            "script": "build:themes",
            "problemMatcher": ["$esbuild"],
            "detail": "Build TypeDoc themes",
            "presentation": {
                "group": "build",
                "panel": "dedicated"
            },
            "group": {
                "kind": "build"
            }
        },
        {
            "label": "dev-build-tsc",
            "type": "shell",
            "command": "pnpm build:tsc --watch",
            "problemMatcher": ["$tsc-watch"],
            "detail": "Build TypeDoc w/ tsc in watch mode",
            "isBackground": true,
            "presentation": {
                "group": "dev",
                "panel": "dedicated"
            },
            "group": {
                "kind": "build"
            }
        },
        {
            "label": "dev-build-themes",
            "type": "shell",
            "command": "pnpm build:themes --watch",
            "problemMatcher": ["$esbuild-watch"],
            "detail": "Build TypeDoc themes in watch mode",
            "isBackground": true,
            "presentation": {
                "group": "dev",
                "panel": "dedicated"
            },
            "group": {
                "kind": "build"
            }
        },
        {
            "label": "dev",
            "dependsOn": ["dev-build-tsc", "dev-build-themes"],
            "detail": "Build TypeDoc in watch mode",
            "problemMatcher": [],
            "group": {
                "kind": "build"
            }
        },
        {
            "label": "build",
            "dependsOn": ["build-tsc", "build-themes"],
            "detail": "Build TypeDoc",
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}


================================================
FILE: CHANGELOG.md
================================================
---
title: Changelog
---

## Unreleased

## v0.28.17 (2026-02-13)

### Bug Fixes

- Improved handling of comments for type aliases which have been declaration merged with functions, #3064.
- Fixed anchor link generation to members named `$`, #3065.
- Corrected typing of the `plugin` option to permit functions, #3066.
- Warnings about unused `@param` tags will now be properly suppressed when they come from declaration files and
  the suppressCommentWarningsInDeclarationFiles option is enabled, #3070.
- Fixed conversion of types referencing type parameters on functions, #3071.

### Thanks!

- @pjeby

## v0.28.16 (2026-01-12)

### Bug Fixes

- Fixed an issue causing TypeDoc to fail to generate documentation when implementing interfaces, #3052.
- Fixed an issue preventing automatic entry point discovery on Windows, #3057.
- Improved vertical positioning of text icons, #3056.
- TypeDoc no longer includes source location information for type literal reflections. This could sometimes
  cause TypeDoc to infer the wrong path when resolving base paths for display.
- Adjusted markdown rendering to allow `markdownItLoader` to override more rendering #3055.

### Features

- Added support for regions for `@include` in `.tsx`, `.cjs`, and `.mjs` file references #3048.
- Comments for TS-in-JS `@typedef` tags may now specify modifier tags with the inline tag syntax `{@mod}`.
  This makes it possible to add modifier tags to these members, which previously was not possible as
  TypeScript's parsing stops for these members at the next non-braced tag, #2916 and #3050.
- A `typedoc-config.schema.json` is now included in the root of the package with a JSON schema for TypeDoc's
  configuration file. The schema for the latest version is also published at https://typedoc.org/schema.json
  and will automatically be picked up when writing typedoc.json files if you are using VSCode, #3054.

### Thanks!

- @a10nik
- @kozi
- @Lakuna

## v0.28.15 (2025-11-29)

### Features

- The `gitRevision` option now accepts the special value `{branch}`, which indicates source links should use
  the current git branch for links, #3041.
- Introduced `validation.invalidPath` for suppressing warnings caused by referencing relative paths which
  do not exist when building the documentation, #3033.
- API: Introduced `Logger.validationWarning` for validation which occurs during conversion rather than
  during TypeDoc's normal validation step, #3033.

## v0.28.14 (2025-10-11)

### Features

- Introduced the `preservedTypeAnnotationTags` option to specify tags whose type annotations should
  be copied to the output documentation, #3020.
  API: Introduced `typeAnnotation` on `CommentTag`
- Added `excludePrivateClassFields` option to hide `#private` members while allowing `private` members, #3017.
- Added support for TypeScript's `@this` tag for JS files which describe `this` parameters, #3026.
- API: Re-introduced `relevanceBoost` on `DeclarationReflection` for plugin use, #3036.

### Bug Fixes

- Fixed conversion of auto-accessor types on properties with the `accessor` keyword, #3019.
- Improved handling of HTML tags within headers for anchor generation, #3023.
- Improved support for detecting destructured parameters and renaming them to the name used in the doc comment, #3026.
- Constructor type parameters will now inherit their class's type parameter descriptions if not otherwise specified, #3031.
- Fixed compatibility with `@microsoft/tsdoc-config` version 0.18.0, #3035.
- Custom theme icons will now be used in the "On This Page" sidebar, #3039.

### Thanks!

- @iclanton
- @jonchardy

## v0.28.13 (2025-09-14)

### Features

- The `basePath` option now also affects relative link resolution, TypeDoc will also check for
  paths relative to the provided base path. If you instead want TypeDoc to only change the rendered
  base path for sources, use the `displayBasePath` option, #3009.

### Bug Fixes

- Fixed bug introduced in 0.28.8 where TypeDoc could not render docs with some mixin classes, #3007.
- `@inheritDoc` will now correctly overwrite `@remarks` and `@returns` blocks on the target comment, #3012.
- The `externalSymbolLinkMappings` option now works properly on links pointing to inherited/overwritten signatures, #3014.

## v0.28.12 (2025-09-01)

### Bug Fixes

- Variables marked with `@enum` now work for symbols imported from another module, #3003.
- Improved magic introduced with #2999 to work with imported symbols, #3003.
- Fixed relative link resolution to file names containing percent encoded URLs, #3006.
- Linking to the project's README file with a relative link will now behave as expected, #3006.
- Reduced unnecessary HTML element rendering in default theme.
  API: `Reflection.hasComment` and `Comment.hasVisibleComponent` now accepts an optional `notRenderedTags` parameter.

## v0.28.11 (2025-08-25)

### Features

- Object properties declared with shorthand property assignment will now use the variable's comment
  if they do not have their own comment, #2999.

### Bug Fixes

- Fixed link resolution not working correctly in first comment on the file in some cases, #2994.
- Optional methods are now rendered with a trailing `?` in the reflection preview and signature, #2995.
- The `compilerOptions` option now functions properly with non-boolean options, #3000.
- Configuration errors within the `compilerOptions` option are now handled gracefully, #3000.
- Fixed improper casing of "Type Declaration" header, #3002.

## v0.28.10 (2025-08-10)

### Bug Fixes

- Fixed inconsistent anchors on module pages for re-exports, #2990.
- Markdown references which appear to be footnotes will no longer be checked for links, #2991.

## v0.28.9 (2025-08-01)

### Features

- Add support for TypeScript 5.9, #2989.

### Bug Fixes

- Fixed bug introduced in 0.28.8 where TypeDoc could not render docs when members inherited from a complex type alias, #2982.
- Fixed automatic discovery of entry points when not running in packages mode, #2988.
- Fixed discovery of package.json file when running with entry points containing a glob, #2985.

## v0.28.8 (2025-07-28)

### Features

- If using JS config files, the `plugin` function can now be given plugin functions to load.
- Permit `-` within tag names to support `typescript-json-schema`'s `@TJS-type` tag, #2972.
- Exposed `Context.createSymbolId` for use by plugins.

### Bug Fixes

- Relative links in `<img srcset>` will now be discovered by TypeDoc, #2975.
- Relative links in `<source src>` and `<source srcset>` elements will now be discovered by TypeDoc, #2975.
- Improved inherited from/overwrites link discovery to point to parent properties in more cases, #2978

### Thanks!

- @jonathanhefner
- @laymonage

## v0.28.7 (2025-06-30)

### Features

- Introduced the `@sortStrategy` tag to override the `sort` option on a specific reflection, #2965.

### Bug Fixes

- Classes and functions exported with `export { type X }` are no longer missing comments, #2970.
- Setting `locale` to an unknown value will now cause TypeDoc to operate in English instead of a debug locale.
- Array options will now report an error if set to a non-array/non-string value.

## v0.28.6 (2025-06-27)

### Features

- TypeDoc now supports resolving relative paths in links to the package directory as belonging to the project, #2961.
- Declarations without comments will now check for comments on their export specifier, #2964.

### Bug Fixes

- Attempting to highlight a supported language which is not enabled is now a warning, not an error, #2956.
- Improved compatibility with CommonMark's link parsing, #2959.
- Classes, variables, and functions exported with `export { type X }` are now detected and converted as interfaces/type aliases, #2962.
- Improved warning messaging for links to symbols which were resolved, but the symbols were not included in the documentation, #2967.
- Fixed an issue preventing nested documents from being deserialized from TypeDoc's JSON output or used in packages mode, #2969.

### Thanks!

- @yGuy

## v0.28.5 (2025-05-26)

### Bug Fixes

- References to type aliases defined as mapped types will now correctly create a reference to the type alias, #2954.
- `ignoredHighlightLanguages` can now be used to prevent warnings for codeblocks containing languages
  which are supported by Shiki but are not loaded, #2956.

## v0.28.4 (2025-05-04)

### Features

- The navigation in the default theme will now attempt to break long names onto multiple lines, #2940.
- Added German (de) localization, #2941.

### Bug Fixes

- TypeDoc's default theme now uses the same chevron for all collapsible elements, #2924
  The `chevronSmall` helper is now deprecated and will be removed with v0.29.0.
- Classes/interfaces marked with `@hidden` will no longer appear in the
  "Hierarchy" section of the docs.
- TypeDoc now handles wildcard JSDoc types, #2949.

### Thanks!

- @blutorange
- @bkeepers

## v0.28.3 (2025-04-20)

### Bug Fixes

- `@inline` now functions when referencing tuple types, #2932.
- `@link` links to the current page are now rendered, #2934.
- `@includeCode` now supports regions in TypeScript files with `.mts` and `.cts` file extensions, #2935.
- Aliased symbols (re-exports) are now resolved before checking if they are excluded/external, #2937.
- Improved error reporting when paths including Windows separators are provided as globs, #2938.

## v0.28.2 (2025-04-07)

### Features

- `@group none` and `@category none` will now render their children without a section
  heading in the default theme, #2922.
- Added `@disableGroups` tag to completely disable the grouping mechanism for a
  given reflection, #2922.

### Bug Fixes

- Variables using `@class` now correctly handle `@category`, #2914.
- Variables using `@class` now include constructor parameters, #2914.
- Variables using `@class` with a generic first constructor function now adopt
  that function's type parameters as the class type parameters, #2914.
- When printing entry point globs which fail to match any paths, TypeDoc will no longer normalize the glob, #2918.
- Inlining types can now handle more type variants, #2920.
- Fixed behavior of `externalSymbolLinkMappings` option when URL is set to `#`, #2921.
- Fixed broken links within module pages when structure-dir router was used, #2928.
- Type parameters on JS classes defined with `@typedef` now correctly handle the constraint, #2929.
- API: `toString` on types containing index signatures now behave correctly, #2917.
- Added `@inlineType` to the list of tags excluded by default.

## v0.28.1 (2025-03-20)

### Features

- The `TypeDocOptions` interface now marks options as optional so it no longer has to be wrapped in `Partial`
  for use in config files, #2901.
- API: Expose control methods for deferred conversion for plugin use (typedoc-plugin-missing-exports)
- API: Expose method to disable TypeDoc usage of `localStorage` without clearing it, #2908.

### Bug Fixes

- `--watch` can now infer entry points from `package.json` as supported in non-watch mode, #2899.
- `@include` with regions now works on files with CRLF line endings, #2902.
- Generated page names now correctly handles UTF-8 characters requiring more than 16 bits #2905.
- Fixed a crash when converting `module.exports = []`, #2909.
- Fixed URL generation which introduced a superfluous `./` in relative links, #2910.

### Thanks!

- @jsmith2-coveo
- @romainmnr

## v0.28.0 (2025-03-15)

### Breaking Changes

- TypeDoc now expects all input globs paths to be specified with `/` path separators, #2825.
- TypeDoc's `--entryPointStrategy merge` mode now requires JSON from at least version 0.28.0.
- Removed `jp` translations from `lang`, to migrate switch to `ja`.
- File name references in `intentionallyNotExported` now use a package name/package relative path instead of an absolute path for matching.
- The `source-order` sort ordering now considers package names / package relative paths instead of using the absolute paths to a file.
- TypeDoc will only check for a project README file next to the discovered `package.json` file if `--readme` is not set
  this change improves handling of monorepo setups where some packages have readme files and others do not, #2875.
- Function-like variable exports will now only be automatically converted as function types if
  they are initialized with a function expression. TypeDoc can be instructed to convert them as functions
  with the `@function` tag, #2881.
- Object literal type alias types will now be converted in a way which causes them to be rendered more similarly
  to how interfaces are rendered, #2817.

### API Breaking Changes

- `ProjectReflection.getReflectionFromSymbol` and `ProjectReflection.getSymbolFromReflection` have been moved to `Context`
- `Path` and `PathArray` parameter types now always contain normalized paths.
- Introduced a `Router` which is used for URL creation. `Reflection.url`,
  `Reflection.anchor`, and `Reflection.hasOwnDocument` have been removed.
- `Deserializer.reviveProject(s)` no longer accepts an option to add project documents.
- `Deserializer.reviveProjects` now requires an `alwaysCreateEntryPointModule` option.
- `Comment.serializeDisplayParts` no longer requires a serializer argument.
- `ReflectionSymbolId.fileName` is now optional, TypeDoc now stores a combination of a package name and package relative path instead.
  The `fileName` property will be present when initially created, but is not serialized.
- Removed `DeclarationReflection.relevanceBoost` attribute which was added for plugins, but never used.
- `i18n` proxy is no longer passed to many functions, instead, reference `i18n` exported from the module directly.
- `ReflectionKind.singularString` and `ReflectionKind.pluralString` now returns translated strings.
  The methods on `Internationalization` to do this previously have been removed.
- The HTML output structure for the search box has changed to support the new modal.
- `DefaultThemeRenderContext`'s `typeDeclaration` and `typeDetailsIfUseful`
  methods now require both a reflection and a type in order to support
  `@expandType`

### Features

- Add support for TypeScript 5.8.x
- The search modal in the HTML output has been rewritten to provide better mobile support
- Added a `--router` option which can be used to modify TypeDoc's output folder
  structure. This can be extended with plugins, #2111.
- Introduced the `@primaryExport` modifier tag to provide more fine grained
  control over export conversion order, #2856
- Introduced `packagesRequiringDocumentation` option for `validation.notDocumented`, TypeDoc will expect comments to be present for symbols in the specified packages.
- TypeDoc now exports a `typedoc/browser` entrypoint for parsing and using serialized JSON files, #2528.
- Type `packageOptions` as `Partial<TypeDocOptions>`, #2878.
- TypeDoc will now warn if an option which should only be set at the root level is set in `packageOptions`, #2878.
- Introduced `@function` tag to force TypeDoc to convert variable declarations with a type annotation as functions, #2881.
- Exposed a `TypeDoc` global object in the HTML theme which can be used to prevent TypeDoc from using `localStorage`, #2872.
- Introduced `@preventInline` and `@inlineType` tags for further control extending the `@inline` tag, #2862.
- Introduced `@preventExpand` and `@expandType` tags for further control extending the `@expand` tag, #2862.
- API: Introduced `DefaultThemeRenderContext.reflectionIcon` for more granular control over displayed reflection icons.

### Bug Fixes

- TypeDoc will now only create references for symbols re-exported from modules.
- Variable-functions will now prefer placing the comment on the signature if there is only one signature present, #2824.
- User filter settings will no longer sometimes cause the search to have fewer visible results than expected.
- Fixed handling of expando functions which were also merged with a namespace, #2876.
- Fixed rendering of function types within arrays and union types, #2892.
- Fixed an issue where if the theme JS didn't load, the page wouldn't be shown, #2894.

### Thanks!

- @crimx
- @jsmith2-coveo
- @phoneticallySAARTHaK
- @XeroAlpha

## v0.27.9 (2025-02-25)

This will be the last v0.27.x release, see #2868 for discussion on the 0.28 beta.

### Features

- Added support for TypeScript 5.8

## v0.27.8 (2025-02-21)

### Features

- The `visibilityFilter` option now supports individual signatures, #2846.
- The `favicon` option may now be given a link starting with `https?://` instead of a path, #2851.
- TypeDoc now supports specifying `#` as the link in `externalSymbolLinkMappings` to indicate the type should not be linked to, #2853.

### Bug Fixes

- Fixed an issue where unrecognized languages would incorrectly be listed in the list of languages with translations, #2852.
- Unresolved external type references will no longer incorrectly linked to `undefined`, #2854.

### Thanks!

- @pjeby
- @XeroAlpha

## v0.27.7 (2025-02-09)

### Features

- `@includeCode` and `@inline` can now inject parts of files using region
  names or line numbers, #2816.
- Introduced `ja` translation options, deprecated `jp` in favor of `ja`, #2843.
- Improved TypeDoc's `--watch` option to support watching files not caught by
  TypeScript's watch mode, #2675.
- The `@inline` tag now works in more places for generic types.
- Visibility filters now consider individual signatures, #2846.

### Bug Fixes

- Fixed an issue where TypeDoc would incorrectly ignore type arguments in references, #2823.
- Improved narrator support for labeling icons, #2832.
- Fixed an issue with `@class` incorrectly handling mapped types, #2842.
- TypeDoc will now consider symbols to be external only if all of their declarations are external
  so that declaration merged members with global symbols can be documented, #2844.
- Fixed an issue where TypeDoc would constantly rebuild, #2844.
- Fixed an issue where the dropdown arrow in the index group would not respect the state of the dropdown, #2845.

### Thanks!

- @pjeby
- @shawninder
- @tats-u
- @XeroAlpha

## v0.27.6 (2024-12-26)

### Features

- Added `ignoredHighlightLanguages` option to specify languages which will be
  allowed in code blocks but not highlighted, #2819.

### Bug Fixes

- `@include` and `@includeCode` now work in the readme file, #2814.
- TypeDoc will now avoid making references to references, #2811.
- Fixed output specific option specification, #2818.
- Improved type reference conversion to avoid including defaulted type arguments, #2820.
- Fixed parsing of declaration references which include a module and a local reference, #2810.
- Improved link resolution logic to prioritize type alias properties with the
  same symbol over type literal properties within function parameters.

## v0.27.5 (2024-12-14)

### Bug Fixes

- Possibly Breaking: TypeDoc will no longer render anchors within the page for
  deeply nested properties. This only affects links to properties of
  properties of types, which did not have a clickable link exposed so are
  unlikely to have been linked to. Furthermore, these links were not always
  created by TypeDoc, only being created if all parent properties contained
  comments, #2808.
- TypeDoc will now warn if a property which does not have a URL within the
  rendered document and the parent property/page will be linked to instead,
  #2808. These warnings can be disabled with the `validation.rewrittenLink`
  option.
- Fix restoration of groups/categories including documents, #2801.
- Fixed missed relative paths within markdown link references in documents.
- Improved handling of incomplete inline code blocks within markdown.
- Direct `https://` links under the `hostedBaseUrl` option's URL will no
  longer be treated as external, #2809.

### Thanks!

- @SacDeNoeuds

## v0.27.4 (2024-12-09)

### Features

- API: Introduced new `Converter.EVENT_CREATE_PROJECT` event which fires when a project is created by the converter, #2800.

### Bug Fixes

- Switch from gzip to deflate for compressing assets to make output consistent across different operating systems, #2796.
- `@include` and `@includeCode` now work for comments on the entry point for projects with a single entry point, #2800.
- Cascaded modifier tags will no longer be copied into type literals, #2802.
- `@summary` now works to describe functions within modules, #2803.
- Corrected navigation showing module link as current when not on module page, #2805.

## v0.27.3 (2024-12-04)

### Features

- Added support for PNG favicons, #2790.
- Improved support for hosting TypeDoc with strict Content Security Policy rules, #2794.

### Bug Fixes

- Add special handling for import types with type errors discarded with ts-expect-error, #2792.
- Fixed low contrast in default colors for properties/accessors in light mode, #2795.
- The `highlightLanguages` option now permits Shiki aliases to be specified rather than just the language ID, #2798.

### Thanks!

- @mikalai-snap
- @mistic100

## v0.27.2 (2024-11-29)

### Bug Fixes

- Fix crash with TypeScript 5.5.x, #2789.

## v0.27.1 (2024-11-28)

### Bug Fixes

- Include classes which inherit from another package in class hierarchy in packages mode, #2467.
- Fixed handling of `@categoryDescription` and `@groupDescription` on module pages, #2787.
- Fixed automatic discovery of entry points in packages mode.
- Reverted accidental style change for hierarchy page introduced in 0.27.0
- The hierarchy Expand/Collapse link will now only appear if the hierarchies are different.

## v0.27.0 (2024-11-27)

### Breaking Changes

- Convert to ESM to enable easier use of ESM-only dependencies.
- Drop support for TypeScript <5.0, no longer supported by DefinitelyTyped
- Relaxed requirements for file names and generated url fragments. This may
  result in a different file name structure, #2714.
- Anchors to document headings and reflections within a HTML generated pages
  have changed. They can be partially restored to the previous format by
  setting `--sluggerConfiguration.lowercase false`. This change was made to
  more closely match the default behavior of GitHub's markdown rendering and
  VSCode's autocomplete when creating a relative link to an external markdown
  file.
- Removed the `hideParameterTypesInTitle` option, this was originally added as
  a workaround for many signatures overflowing the available horizontal space
  in rendered pages. TypeDoc now has logic to wrap types/signatures smartly,
  so this option is no longer necessary.
- Changed the default `kindSortOrder` to put references last.
- Changed the default `sort` order to use `alphabetical-ignoring-documents`
  instead of `alphabetical`.
- Changed default of `suppressCommentWarningsInDeclarationFiles` to `true`
- API: Constructor signatures now use the parent class name as their name
  (e.g. `X`, not `new X`)
- API: `@group`, `@category`, `@groupDescription` and `@categoryDescription`
  will no longer be removed from the reflections they are present on. They are
  skipped during rendering with the `notRenderedTags` option.

### Features

- Add support for TypeScript 5.7
- TypeDoc will now discover entry points from `package.json` exports if they
  are not provided manually, #1937.
- Relative links to markdown files may now include `#anchor` links to
  reference a heading within them.
- Improved support for `@param` comments with nested object types, #2555.
- Improved support for `@param` comments which reference a type
  alias/interface. Important properties on the referenced type can now be
  highlighted with `@param options.foo`, which will result in the additional
  note being included under the documentation for that parameter, #2147. Note:
  This feature is limited to references. It is not supported on other types of
  types.
- Added a new `outputs` option which is an array of outputs. This can be used
  to render the documentation multiple times with different rendering options
  or output types, #2597.
- Added support for rendering alerts (or callouts) in markdown.
- Add support for an `@expand` tag which can be placed on type aliases and
  interfaces. When a type with `@expand` is referenced and TypeDoc has a place
  to include additional details about the type, the properties of the type
  will be included in the page where `@expand` is found. Note that use of this
  tag can _significantly_ increase the size of your generated documentation if
  it is applied to commonly used types as it will result in inlining the
  comments for those types everywhere they are referenced, #2303.
- Add support for an `@inline` tag which can be placed on type aliases and
  interfaces. When a type with `@inline` is referenced, TypeDoc will resolve
  the referenced type and convert the type as if it was included directly
  within the referencing type. Note that use of this tag can _significantly_
  increase the size of your generated documentation if it is applied to
  commonly used types as it will result in inlining the comments for those
  types everywhere they are referenced, #2303.
- Introduced a new `@useDeclaredType` tag for type aliases which can sometimes
  improve their documentation, #2654.
- Added a new `@mergeModuleWith` tag which can be used to tell TypeDoc to
  place a module/namespace's children under a different module/namespace and
  remove the real parent, #2281.
- Added new `@include` and `@includeCode` inline tags to include files within
  comments/documents.
- Add `notRenderedTags` option. This option is similar to the `excludeTags`
  option, but while `excludeTags` will result in the tag being completely
  removed from the documentation, `notRenderedTags` only prevents it from
  being included when rendering.
- Added `groupReferencesByType` option.
- Added `navigation.excludeReferences` option
- Added `useFirstParagraphOfCommentAsSummary` option to configure how TypeDoc
  handles comments for module members without the `@summary` tag.
- Introduced `favicon` option to specify a `.ico` or `.svg` favicon to reference.
- Sections within the page and in the "On This Page" navigation are now tied
  together and will expand/collapse together, #2335.
- API: Introduced a new `app.outputs` object for defining new output strategies.
- API: TypeDoc's CSS is now wrapped in `@layer typedoc`, #2782.

### Bug Fixes

- TypeDoc now properly flags `readonly` index signatures.
- TypeDoc will now use the first signature's comment for later signatures in
  overloads if present, #2718.
- Fixed handling of `@enum` if the type was declared before the variable, #2719.
- Fixed empty top level modules page in packages mode, #2753.
- TypeDoc can now link to type alias properties, #2524.
- TypeDoc will now document the merged symbol type when considering globals
  declared inside `declare global`, #2774
- TypeDoc now converts `declare module "foo"` as a module rather than a namespace, #2778.
- Import types in type aliases now use module member references if present, #2779.
- Fixed an issue where properties were not properly marked optional in some
  cases. This primarily affected destructured parameters.
- Added `yaml` to the highlight languages supported by default.
- TypeDoc now recognizes `txt` as an alias of `text` to indicate a code block
  should not be highlighted.
- Items which are hidden with `@ignore` or `@hidden` but still referenced by
  other types will no longer produce warnings about not being exported.
- If a project only has one module within it, TypeDoc will now consider that
  module when resolving `@link` tags.
- The arrows to indicate whether or not a section is open now work when
  JavaScript is disabled.
- Group/category search boosts are now applied when writing the search index
  rather than when converting. This prevents issues where boosts used by just
  one package were incorrectly reported as unused when running with
  entryPointStrategy set to packages.

### Thanks!

- @Huxpro
- @mrfigg
- @tgreyuk
- @XeroAlpha

## v0.26.11 (2024-11-01)

### Features

- If `hostedBaseUrl` is set to the root page on a website, TypeDoc will now include `WebSite` structured data, #2760.

### Bug Fixes

- Fix support for ESM config files with Node 23, #2752.
- Fix type errors when using `"module": "ESNext"` and importing TypeDoc, #2747.
- Inherited comments on overloaded methods now consider the overload position when inheriting a comment, #2755.

## v0.26.10 (2024-10-16)

### Bug Fixes

- Fixed missing space on page headers, #2748.

## v0.26.9 (2024-10-11)

### Features

- Added `headings` option to control optional headings, #2729.
- Updated Chinese translations, #2739.
- Added a folder icon to page navigation elements which are not links, #2741.

### Bug Fixes

- `externalSymbolLinkMappings` now uses the TypeScript reported link target if available, #2725.
- TypeDoc will no longer omit the modules page if a project contains only modules/documents, #2730.
- Fixed missing breadcrumbs on project page, #2728.
- TypeDoc will no longer render an empty readme page if no readme was found.

### Thanks!

- @lriggle-strib
- @mrfigg
- @XeroAlpha

## v0.26.8 (2024-10-04)

### Features

- Updated Chinese translations, #2706.
- Exported constants no longer render the type and default value if they are the same, #2717.
- The HTML output now wraps tag blocks with `<div>` tags and includes the tag name in a class name, #2723.

### Bug Fixes

- Correctly handle external link resolver link text when referencing an external symbol, #2700.
- Big integer literals are now supported as default values, #2721.
- Corrected handling of `@link` tags present in comments at the start of source files.
- The index will now display when a module only contains documents, #2722.
- `ReflectionSymbolId.pos` no longer references the position _before_ any doc comments for a symbol.
  This could cause typedoc-plugin-dt-links to produce links which didn't go to the expected location in a file.

### Thanks!

- @Corso02
- @lriggle-strib
- @XeroAlpha

## v0.26.7 (2024-09-09)

### Features

- Support TypeScript 5.6, #2699.
- Added `customJs` option to include a script tag in generated HTML output, #2650.
- Added `markdownLinkExternal` option to treat `http[s]://` links in markdown documents and comments as external to be opened in a new tab, #2679.
- Added `navigation.excludeReferences` option to prevent re-exports from appearing in the left hand navigation, #2685.
- Added support for the `@abstract` tag, #2692.

### Bug Fixes

- Fixed an issue where links in packages mode would be resolved incorrectly, #2680.
- `@link` tags to symbols which are not included in the documentation will produce invalid link warnings again, #2681.
- Fixed handling of `@param` tags on comments attached to function callback parameters, #2683.
- The `alphabetical` and `alphabetical-ignoring-documents` sort options now use `localeCompare` to sort, #2684.
- Fixed incorrect placement of parameter default values in some signatures with a `this` parameter, #2698.

### Thanks!

- @Aryakoste
- @waynemwashuma

## v0.26.6 (2024-08-18)

### Features

- Use of the `@extends` block tag no longer produces warnings, #2659.
  This tag should only be used in JavaScript projects to specify the type parameters used when extending a parent class. It will not be rendered.
- Added new `navigation.compactFolders` option to prevent TypeDoc from compacting folders, similar to the VSCode option. #2667.

### Bug Fixes

- The `suppressCommentWarningsInDeclarationFiles` option now correctly ignores warnings in `.d.cts` and `.d.mts` files, #2647.
- Restored re-exports in the page navigation menu, #2671.
- JSON serialized projects will no longer contain reflection IDs for other projects created in the same run. Gerrit0/typedoc-plugin-zod#6.
- In packages mode the reflection ID counter will no longer be reset when converting projects. This previously could result in links to files not working as expected.

## v0.26.5 (2024-07-21)

### Features

- TypeDoc now exposes array option defaults under `OptionDefaults`, #2640.

### Bug Fixes

- Constructor parameters which share a name with a property on a parent class will no longer inherit the comment on the parent class, #2636.
- Packages mode will now attempt to use the comment declared in the comment class for inherited members, #2622.
- TypeDoc no longer crashes when `@document` includes an empty file, #2638.
- API: Event listeners added later with the same priority will be called later, #2643.

### Thanks!

- @bladerunner2020

## v0.26.4 (2024-07-10)

### Bug Fixes

- The page navigation sidebar no longer incorrectly includes re-exports if the same member is exported with multiple names #2625.
- Page navigation now ensures the current page is visible when the page is first loaded, #2626.
- If a relative linked image is referenced multiple times, TypeDoc will no longer sometimes produce invalid links to the image #2627.
- `@link` tags will now be validated in referenced markdown documents, #2629.
- `@link` tags are now resolved in project documents, #2629.
- HTML/JSON output generated by TypeDoc now contains a trailing newline, #2632.
- TypeDoc now correctly handles markdown documents with CRLF line endings, #2628.
- `@hidden` is now properly applied when placed in a function implementation comment, #2634.
- Comments on re-exports are now rendered.

### Thanks!

- @bukowa
- @garrett-hopper

## v0.26.3 (2024-06-28)

### Features

- "On This Page" navigation now includes the page groups in collapsible sections, #2616.

### Bug Fixes

- `mailto:` links are no longer incorrectly recognized as relative paths, #2613.
- Added `@since` to the default list of recognized tags, #2614.
- Relative paths to directories will no longer cause the directory to be copied into the media directory, #2617.

## v0.26.2 (2024-06-24)

### Features

- Added a `--suppressCommentWarningsInDeclarationFiles` option to disable warnings from
  parsing comments in declaration files, #2611.
- Improved comment discovery to more closely match TypeScript's discovery when getting comments
  for members of interfaces/classes, #2084, #2545.

### Bug Fixes

- The `text` non-highlighted language no longer causes warnings when rendering, #2610.
- If a comment on a method is inherited from a parent class, and the child class does not
  use an `@param` tag from the parent, TypeDoc will no longer warn about the `@param` tag.

## v0.26.1 (2024-06-22)

### Features

- Improved Korean translation coverage, #2602.

### Bug Fixes

- Added `@author` to the default list of recognized tags, #2603.
- Anchor links are no longer incorrectly checked for relative paths, #2604.
- Fixed an issue where line numbers reported in error messages could be incorrect, #2605.
- Fixed relative link detection for markdown links containing code in their label, #2606.
- Fixed an issue with packages mode where TypeDoc would use (much) more memory than required, #2607.
- TypeDoc will no longer crash when asked to render highlighted code for an unsupported language, #2609.
- Fixed an issue where relatively-linked files would not be copied to the output directory in packages mode.
- Fixed an issue where modifier tags were not applied to top level modules in packages mode.
- Fixed an issue where excluded tags were not removed from top level modules in packages mode.
- `.jsonc` configuration files are now properly read as JSONC, rather than being passed to `require`.

### Thanks!

- @KNU-K

## v0.26.0 (2024-06-22)

### Breaking Changes

- Drop support for Node 16.
- Moved from `marked` to `markdown-it` for parsing as marked has moved to an async model which supporting would significantly complicate TypeDoc's rendering code.
  This means that any projects setting `markedOptions` needs to be updated to use `markdownItOptions`.
  Unlike `marked@4`, `markdown-it` pushes lots of functionality to plugins. To use plugins, a JavaScript config file must be used with the `markdownItLoader` option.
- Updated Shiki from 0.14 to 1.x. This should mostly be a transparent update which adds another 23 supported languages and 13 supported themes.
  As Shiki adds additional languages, the time it takes to load the highlighter increases linearly. To avoid rendering taking longer than necessary,
  TypeDoc now only loads a few common languages. Additional languages can be loaded by setting the `--highlightLanguages` option.
- Changed default of `--excludePrivate` to `true`.
- Renamed `--sitemapBaseUrl` to `--hostedBaseUrl` to reflect that it can be used for more than just the sitemap.
- Removed deprecated `navigation.fullTree` option.
- Removed `--media` option, TypeDoc will now detect image links within your comments and markdown documents and automatically copy them to the site.
- Removed `--includes` option, use the `@document` tag instead.
- Removed `--stripYamlFrontmatter` option, TypeDoc will always do this now.
- Renamed the `--htmlLang` option to `--lang`.
- Removed the `--gaId` option for Google Analytics integration and corresponding `analytics` theme member, #2600.
- All function-likes may now have comments directly attached to them. This is a change from previous versions of TypeDoc where functions comments
  were always moved down to the signature level. This mostly worked, but caused problems with type aliases, so was partially changed in 0.25.13.
  This change was extended to apply not only to type aliases, but also other function-likes declared with variables and callable properties.
  As a part of this change, comments on the implementation signature of overloaded functions will now be added to the function reflection, and will
  not be inherited by signatures of that function, #2521.
- API: TypeDoc now uses a typed event emitter to provide improved type safety, this found a bug where `Converter.EVENT_CREATE_DECLARATION`
  was emitted for `ProjectReflection` in some circumstances.
- API: `MapOptionDeclaration.mapError` has been removed.
- API: Deprecated `BindOption` decorator has been removed.
- API: `DeclarationReflection.indexSignature` has been renamed to `DeclarationReflection.indexSignatures`.
  Note: This also affects JSON serialization. TypeDoc will support JSON output from 0.25 through at least 0.26.
- API: `JSONOutput.SignatureReflection.typeParameter` has been renamed to `typeParameters` to match the JS API.
- API: `DefaultThemeRenderContext.iconsCache` has been removed as it is no longer needed.
- API: `DefaultThemeRenderContext.hook` must now be passed `context` if required by the hook.

### Features

- Added support for TypeScript 5.5.
- Added new `--projectDocuments` option to specify additional Markdown documents to be included in the generated site #247, #1870, #2288, #2565.
- TypeDoc now has the architecture in place to support localization. No languages besides English
  are currently shipped in the package, but it is now possible to add support for additional languages, #2475.
- Added support for a `packageOptions` object which specifies options that should be applied to each entry point when running with `--entryPointStrategy packages`, #2523.
- `--hostedBaseUrl` will now be used to generate a `<link rel="canonical">` element in the project root page, #2550.
- Added support for documenting individual elements of a union type, #2585.
  Note: This feature is only available on type aliases directly containing unions.
- TypeDoc will now log the number of errors/warnings errors encountered, if any, after a run, #2581.
- New option, `--customFooterHtml` to add custom HTML to the generated page footer, #2559.
- TypeDoc will now copy modifier tags to children if specified in the `--cascadedModifierTags` option, #2056.
- TypeDoc will now warn if mutually exclusive modifier tags are specified for a comment (e.g. both `@alpha` and `@beta`), #2056.
- Groups and categories can now be collapsed in the page body, #2330.
- Added support for JSDoc `@hideconstructor` tag.
  This tag should only be used to work around TypeScript#58653, prefer the more general `@hidden`/`@ignore` tag to hide members normally, #2577.
- Added `--useHostedBaseUrlForAbsoluteLinks` option to use the `--hostedBaseUrl` option to produce absolute links to pages on a site, #940.
- Tag headers now generate permalinks in the default theme, #2308.
- TypeDoc now attempts to use the "most likely name" for a symbol if the symbol is not present in the documentation, #2574.
- Fixed an issue where the "On This Page" section would include markdown if the page contained headings which contained markdown.
- TypeDoc will now warn if a block tag is used which is not defined by the `--blockTags` option.
- Added three new sort strategies `documents-first`, `documents-last`, and `alphabetical-ignoring-documents` to order markdown documents.
- Added new `--alwaysCreateEntryPointModule` option. When set, TypeDoc will always create a `Module` for entry points, even if only one is provided.
  If `--projectDocuments` is used to add documents, this option defaults to `true`, otherwise, defaults to `false`.
- Added new `--highlightLanguages` option to control what Shiki language packages are loaded.
- TypeDoc will now render union elements on new lines if there are more than 3 items in the union.
- TypeDoc will now only render the "Type Declaration" section if it will provide additional information not already presented in the page.
  This results in significantly smaller documentation pages in many cases where that section would just repeat what has already been presented in the rendered type.
- Added `comment.beforeTags` and `comment.afterTags` hooks for plugin use.
  Combined with `CommentTag.skipRendering` this can be used to provide custom tag handling at render time.

### Bug Fixes

- TypeDoc now supports objects with multiple index signatures, #2470.
- Header anchor links in rendered markdown are now more consistent with headers generated by TypeDoc, #2546.
- Types rendered in the `Returns` header are now properly colored, #2546.
- Links added with the `navigationLinks` option are now moved into the pull out navigation on mobile displays, #2548.
- `@license` and `@import` comments will be ignored at the top of files, #2552.
- Fixed issue in documentation validation where constructor signatures where improperly considered not documented, #2553.
- Keyboard focus is now visible on dropdowns and checkboxes in the default theme, #2556.
- The color theme label in the default theme now has an accessible name, #2557.
- Fixed issue where search results could not be navigated while Windows Narrator was on, #2563.
- `charset` is now correctly cased in `<meta>` tag generated by the default theme, #2568.
- Fixed very slow conversion on Windows where Msys git was used by typedoc to discover repository links, #2586.
- Validation will now be run in watch mode, #2584.
- Fixed an issue where custom themes which added dependencies in the `<head>` element could result in broken icons, #2589.
- `@default` and `@defaultValue` blocks are now recognized as regular blocks if they include inline tags, #2601.
- Navigation folders sharing a name will no longer be saved with a shared key to `localStorage`.
- The `--hideParameterTypesInTitle` option no longer applies when rendering function types.
- Broken `@link` tags in readme files will now cause a warning when link validation is enabled.
- Fixed `externalSymbolLinkMappings` option's support for [meanings](https://typedoc.org/guides/declaration-references/#meaning) in declaration references.
- Buttons to copy code now have the `type=button` attribute set to avoid being treated as submit buttons.
- `--hostedBaseUrl` will now implicitly add a trailing slash to the generated URL.

### Thanks!

- @Aryakoste
- @bladerunner2020
- @Dinnerbone
- @HarelM
- @kraenhansen
- @Nil2000
- @steve02081504
- @tristanzander

## v0.25.13 (2024-04-07)

### Features

- Added `gitRevision:short` placeholder option to `--sourceLinkTemplate` option, #2529.
  Links generated by TypeDoc will now default to using the non-short git revision.
- Moved "Generated by TypeDoc" footer into a `<footer>` tag, added `footer.begin` and `footer.end`
  render hooks for use by custom plugins, #2532.

### Bug Fixes

- Fixed conversion of `NoInfer` missing type parameter reference, #2539.
- Linking to a member on a page no longer incorrectly claims that
  "This member is normally hidden due to your filter settings" for every member.

### Thanks!

- @xuhdev

## v0.25.12 (2024-03-10)

### Features

- Added support for TypeScript 5.4, #2517.

### Bug Fixes

- Updated page font to work around issues with Mac rendering, #2518.

### Thanks!

- @docmattman

## v0.25.11 (2024-03-06)

### Bug Fixes

- Fixed an issue introduced with 0.25.10 which causes the page index to initially render empty, #2514.
- "On This Page" section is now smarter when handling page headings which do not follow the normal `h1>h2>h3` process, #2515.

## v0.25.10 (2024-03-03)

### Bug Fixes

- Constructed references to enum types will be properly linked with `@interface`, #2508.
- Comments on property-methods will no longer be duplicated in generated documentation, #2509.
- Reduced rendered docs size by writing icons to a referenced SVG asset, #2505.
  For TypeDoc's docs, this reduced the rendered documentation size by ~30%.
- The HTML docs now attempt to reduce repaints caused by dynamically loading the navigation, #2491.
- When navigating to a link that contains an anchor, the page will now be properly highlighted in the page navigation.

## v0.25.9 (2024-02-26)

### Features

- Literal numeric unions will now be sorted during conversion, #2502.

### Bug Fixes

- Module readmes will now be included in JSON output, #2500.
- Fixed crash when `--excludeNotDocumented` was used and the project contained a reference to a removed signature, #2496.
- Fixed crash when converting an infinitely recursive type via a new `--maxTypeConversionDepth` option, #2507.
- Type links in "Parameters" and "Type Parameters" sections of the page will now be correctly colored.

### Thanks!

- @JMBeresford

## v0.25.8 (2024-02-09)

### Features

- Added a new `--sitemapBaseUrl` option. When specified, TypeDoc will generate a `sitemap.xml` in your output folder that describes the site, #2480.
- Added support for the `@class` tag. When added to a comment on a variable or function, TypeDoc will convert the member as a class, #2479.
  Note: This should only be used on symbols which actually represent a class, but are not declared as a class for some reason.
- Added support for `@groupDescription` and `@categoryDescription` to provide a description of groups and categories, #2494.
- API: Exposed `Context.getNodeComment` for plugin use, #2498.

### Bug Fixes

- Fixed an issue where a namespace would not be created for merged function-namespaces which are declared as variables, #2478.
- A class which implements itself will no longer cause a crash when rendering HTML, #2495.
- Variable functions which have construct signatures will no longer be converted as functions, ignoring the construct signatures.
- The class hierarchy page will now include classes whose base class is not included in the documentation, #2486.
- Fixed an issue where, if the index section was collapsed when loading the page, all content within it would be hidden until expanded, and a member visibility checkbox was changed.
- API: `Context.programs` will no longer contain duplicates, #2498.

## v0.25.7 (2024-01-08)

### Bug Fixes

- Fixed an issue where a namespace would not be created for merged function-namespaces only containing types, #2476.
- Fixed an infinite loop when converting a union type which directly contained another union type which refers to itself, #2469.

## v0.25.6 (2024-01-01)

### Bug Fixes

- Fixed infinite loop caused by a fix for some complicated union/intersection types, #2468.
- Improved infinite loop detection in type converter to reduce false positives.

## v0.25.5 (2024-01-01)

## Features

- Added a new hierarchy.html page to HTML output which displays the full inheritance hierarchy for classes included in the documentation, #182.
- Added a `--navigation.includeFolders` (default: `true`) option to create nested navigation for projects which include many entry points, #2388.
- Type parameters on functions/classes can will now link to the "Type Parameters" section, #2322.
  Type parameters have also been changed to have a distinct color from type aliases when rendering, which can be changed with custom CSS.
- TypeDoc now provides warnings if a signature comment is directly specified on a signature and contains `@param` tags which do not apply, #2368.
- Extended reflection preview view for interfaces to include type parameters, #2455.
- Added special cases for converting methods which are documented as returning `this` or accepting `this` as a parameter, #2458.
  Note: This will only happen if a method is declared as `method(): this`, it will not happen if the method implicitly returns `this`
  as the compiler strips that information when creating types for a class instance.
- Improved handling of functions with properties. Previous TypeDoc versions would always create a separate
  namespace for properties, now, TypeDoc will create a separate namespace if the function is declaration merged
  with a namespace. If the properties are added via `Object.assign` or via property assignment on the function
  TypeDoc will now instead add the properties to the function's page, #2461.

### Bug Fixes

- If both an interface and a variable share a name/symbol, TypeDoc will no longer link to the variable when referenced in a type position, #2106.
- `notDocumented` validation will no longer require documentation for data within parameters that cannot be documented via `@param`, #2291.
- "defined in" locations for signatures will now always be contained within the function declaration's location. This prevents defined in sometimes pointing to node_modules, #2307.
- Type parameters will now be resolved for arrow-methods on classes like regular class methods, #2320.
- TypeDoc now inherits `typedocOptions` fields from extended tsconfig files, #2334.
- Methods which return function types no longer have duplicated comments, #2336.
- Comments on function-like type aliases will now show up under the type alias, rather than nested within the type declaration, #2372.
- Improved detection of default values for parameters with destructured values, #2430.
- Fix crash when converting some complicated union/intersection types, #2451.
- Navigation triangle markers should no longer display on a separate line with some font settings, #2457.
- `@group` and `@category` organization is now applied later to allow inherited comments to create groups/categories, #2459.
- Conversion order should no longer affect link resolution for classes with properties whose type does not rely on `this`, #2466.
- Keyword syntax highlighting introduced in 0.25.4 was not always applied to keywords.
- Module reflections now have a custom `M` icon rather than sharing with the namespace icon.
  Note: The default CSS still colors both modules and namespaces the same, as it is generally uncommon to have both in a generated site.
- If all members in a group are hidden from the page, the group will be hidden in the page index on page load.

## v0.25.4 (2023-11-26)

### Features

- Added support for TypeScript 5.3, #2446.
- TypeDoc will now render interfaces as code at the top of the page describing interfaces, #2449.
  This can be controlled through the new `DefaultThemeRenderContext.reflectionPreview` helper.
- Improved type rendering to highlight keywords differently than symbols.

### Bug Fixes

- Fixed automatic declaration file resolution on Windows, #2416.
- Fixed default option values on options declared by plugins in packages mode, #2433.
- `gitRevision` will now be replaced in `sourceLinkTemplate`, #2434.
- Improved handling of function-modules created with `Object.assign`, #2436.
- TypeDoc will no longer warn about duplicate comments with warnings which point to a single comment, #2437
- Fixed an infinite loop when `skipLibCheck` is used to ignore some compiler errors, #2438.
- `@example` tag titles will now be rendered in the example heading, #2440.
- Correctly handle transient symbols in `@namespace`-created namespaces, #2444.
- TypeDoc no longer displays the "Hierarchy" section if there is no inheritance hierarchy to display.
- Direct links to individual signatures no longer results in the signature being partially scrolled off the screen.

### Thanks!

- @li-jia-nan
- @Nokel81
- @ocavue
- @swarnpallav

## v0.25.3 (2023-10-29)

### Features

- Added `--sourceLinkExternal` option to render source code links as external, #2415.
- TypeDoc no longer requires the `declarationMap` option to be set to true to handle cross-package links in packages mode, #2416.
- Added `external-last` option for the `--sort` option, #2418.

### Bug Fixes

- TypeDoc now attempts to correct local anchor links in readme files which are broken by its deconfliction logic, #2413.
- TypeDoc now finds comments on index signatures again, #2414.
- TypeDoc now does a better job of detecting properties when destructured function arguments are used.
- Quotes will now be properly escaped in HTML attribute values.

### Thanks!

- @mogelbrod
- @rsanchez

## v0.25.2 (2023-10-08)

### Features

- Added `navigationLeaves` option to remove branches from the navigation tree, #2382.
- Added `sortEntryPoints` option (defaults to true) to allow disabling entry point sorting, #2393.
- Improved support for multi-word searches, #2400.

### Bug Fixes

- Fixed conversion of `@template` constraints on JSDoc defined type parameters, #2389.
- Invalid link validation is now correctly suppressed before all projects have been converted in packages mode, #2403.
- Fixed tsconfig handling for projects using a solution-style tsconfig, #2406.
- Fixed broken settings icons caused by icon caching introduced in 0.25.1, #2408.
- Corrected module comment handling on declaration files containing a single `declare module "foo"`, #2401.

### Thanks!

- @schiem

## v0.25.1 (2023-09-04)

### Features

- Added `stripYamlFrontmatter` config option to remove YAML frontmatter from README.md, #2381.
- Added `--excludeCategories` config option to remove reflections present in any excluded category, #1407.
- If no tsconfig.json file is present, TypeDoc will now attempt to compile without setting any compiler options, #2304.
- Navigation is now written to a JS file and built dynamically, which significantly decreases document generation time
  with large projects and also provides large space benefits. Themes may now override `DefaultTheme.buildNavigation`
  to customize the displayed navigation tree, #2287.
  Note: This change renders `navigation.fullTree` obsolete. If you set it, TypeDoc will warn that it is being ignored.
  It will be removed in v0.26.
- The search index is now compressed before writing, which reduces most search index sizes by ~5-10x.
- TypeDoc will now attempt to cache icons when `DefaultThemeRenderContext.icons` is overwritten by a custom theme.
  Note: To perform this optimization, TypeDoc relies on `DefaultThemeRenderContext.iconCache` being rendered within
  each page. TypeDoc does it in the `defaultLayout` template.
- Cache URL derivation during generation, #2386.

### Bug Fixes

- `@property` now works as expected if used to override a method's documentation.
- Deprecated functions/methods are now correctly rendered with a struck-out name.
- `--watch` mode works again, #2378.
- Improved support for optional names within JSDoc types, #2384.
- Fixed duplicate rendering of reflection flags on signature parameters, #2385.
- TypeDoc now handles the `intrinsic` keyword if TS intrinsic types are included in documentation.
- `--exclude` is now respected when expanding globs in entry points, #2376.

### Thanks!

- @ajesshope
- @HemalPatil
- @hrueger
- @typhonrt

## v0.25.0 (2023-08-25)

### Breaking Changes

- Bump minimum Node version to 16.
- Removed `legacy-packages` option for `--entryPointStrategy`.
- Changed default value of `--categorizeByGroup` to `false`.
- Specifying a link as the `gitRemote` is no longer supported.
- An `Application` instance must now be retrieved via `Application.bootstrap` or `Application.bootstrapWithPlugins`, #2268.
- Removed `ReflectionKind.ObjectLiteral` that was never used by TypeDoc.
- Removed deprecated members `DefaultThemeRenderContext.comment` and `DefaultThemeRenderContext.attemptExternalResolution`.

### Features

- Added support for TypeScript 5.2, #2373.
- TypeDoc config files now support options default-exported from an ESM config file, #2268.
- TypeDoc config files may now export a promise containing configuration, #2268.
- Added `--preserveLinkText` option (defaults to true) which determines whether the reflection name or full link text is included
  in the output when no override is specified, #2355.
- Added a no-results placeholder when no search results are available, #2347.
- Implemented several miscellaneous performance improvements to generate docs faster, this took the time to generate TypeDoc's
  site from ~5.6 seconds to ~5.4 seconds.
- Added `--disableGit` option to prevent TypeDoc from using Git to try to determine if sources can be linked, #2326.
- Added support for tags `@showGroups`, `@hideGroups`, `@showCategories`, `@hideCategories` to configure the navigation pane on a
  per-reflection basis, #2329.
- With `--jsDocCompatibility.defaultTag` set, `@defaultValue` is now implicitly a code block if the text contains no code, #2370.

### Bug Fixes

- Fixed link discovery if nested (`Foo#bar`) links were used and `--useTsLinkResolution` is enabled in some cases, #2360.
- Links with invalid declaration references will no longer silently link to the wrong page in some cases, #2360.
- Fixed duplicate definitions in type hierarchy when using packages mode, #2327.
- `@inheritDoc` was not properly resolved across packages in packages mode, #2331.
- Added warning for attempted `@interface` use on union types, #2352.
- Fixed misleading type annotation on `Theme.getUrls`, #2318.
- Fixed duplicate namespace in documentation if `@namespace` is used on a variable with an associated namespace, #2364.
- Fixed `@namespace` property discovery if merged with a type and the type was declared first #2364.
- Tables in markdown are now styled, #2366.
- Sidebar links no longer open in a new tab, #2353.
- Headers now include some padding before rendering text, #2316.
- Symbol locations for signatures on `reflection.sources` now considers the node's name like non-signature location discovery does.

### Thanks!

- @camc314
- @cprussin
- @roggervalf
- @Th3S4mur41

## v0.24.8 (2023-06-04)

### Features

- Added support for TypeScript 5.1, #2296.
- Added `navigation.fullTree` to control rendering the full navigation tree on each page, #2287.
  This option will likely be replaced in 0.25 with dynamic loading of the full tree.
- TypeDoc's `--pretty` option now also controls whether generated HTML contains line breaks, #2287.
- Optimized icon caching to reduce file size in generated HTML documentation, #2287.
- Render property description of "roughly top level" object types, #2276.
- Added `MarkdownEvent.INCLUDE` for plugins, #2284.

### Bug Fixes

- When rendering functions/methods, TypeDoc will now render the comment summary above the parameters/return type,
  and any other block tags in the order they are defined in the comment, #2285.
- Comments are no longer removed from classes/interfaces containing call signatures, #2290.

### Thanks!

- @krisztianb
- @WikiRik

## v0.24.7 (2023-05-08)

### Features

- TypeDoc will now allow conversion without any entry points to support "readme only" packages, #2264.

### Bug Fixes

- Category children are now sorted according to the `sort` option, #2272.
- Inline tags no longer require a space after the tag name to be parsed as a tag, #2273.
- Fixed module/namespace links in navigation when viewed in Safari, #2275.

## v0.24.6 (2023-04-24)

### Features

- Improved error messaging if a provided entry point could not be converted into a documented module reflection, #2242.
- API: Added support for `g`, `circle`, `ellipse`, `polygon`, and `polyline` svg elements, #2259.
- Extended `jsDocCompatibility` option with `inheritDocTag` to ignore fully lowercase `inheritDoc` tags and
  `ignoreUnescapedBraces` to disable warnings about unescaped `{` and `}` characters in comments.

### Bug Fixes

- `--useTsLinkResolution` is no longer ignored within block tags, #2260.
- The current namespace will also be expanded in the navigation on page load, #2260.
- Fixed flicker of navigation pane when reloading a page caused by updating expansion state after the page was loaded.
- Fixed an infinite loop if more than one entry point was provided, and all entry points were the same.

### Thanks!

- @FlippieCoetser

## v0.24.5 (2023-04-22)

### Features

- Categories and groups can now be shown in the navigation, added `--navigation.includeCategories`
  and `--navigation.includeGroups` to control this behavior. The `--categorizeByGroup` option also
  effects this behavior. If `categorizeByGroup` is set (the default) and `navigation.includeGroups` is
  _not_ set, the value of `navigation.includeCategories` will be effectively ignored since categories
  will be created only within groups, #1532.
- Added support for discovering a "module" comment on global files, #2165.
- Added copy code to clipboard button, #2153.
- Function `@returns` blocks will now be rendered with the return type, #2180.
- Added `--groupOrder` option to specify the sort order of groups, #2251.

### Bug Fixes

- Type parameter constraints now respect the `--hideParameterTypesInTitle` option, #2226.
- Even more contrast fixes, #2248.
- Fix semantic highlighting for predicate type's parameter references, #2249.
- Fixed broken links to heading titles.
- Fixed inconsistent styling between type parameter lists and parameter lists.
- TypeDoc will now warn if more than one `@returns` block is is present in a function, and ignore the duplicate blocks as specified by TSDoc.

### Thanks!

- @FlippieCoetser

## v0.24.4 (2023-04-16)

### Bug Fixes

- Fixed broken semantic coloring, #2247.
- Increased contrast for parameter titles in dark mode to meet WCAG AA contrast requirements, #2244.
- Underline color of index links now matches the text color, #2245.
- Increased contract for active menu item text in dark mode.

## v0.24.3 (2023-04-16)

### Bug Fixes

- Fixed path expansion on Windows preventing generation, #2243 and #2241.

## v0.24.2 (2023-04-15)

### Features

- Added semantic link coloring for reflection names & links, #2227.
  Note: This resulted in function signatures becoming too busy for easy scanning with even slightly
  complicated signatures as such, TypeDoc now only renders parameter names in the signature title
  and includes the type in the parameter details as usual. This can be controlled with the new
  `--hideParameterTypesInTitle` option.
- Conditional types will now render their branches on the next line for easier comprehension.

### Bug Fixes

- Fixed `&` showing as `&amp;` and HTML text showing up in page contents navigation, #2224.
- Increased padding between sections when one navigation column is displayed, #2225.
- Correct padding for navigation elements with a displayed icon, #2229.
- Fixed `source-order` sort strategy failing to compare reflections within a file.
- Added `enum-member-source-order` specialization of the `source-order` sort strategy which only compares enum members, #2237.
- Updated highlight colors for semantic links to meet WCAG AA contrast requirements, #2228.
- Type parameters are now highlighted consistently, #2230.
- Fixed semantic coloring in type and function signatures, #2227.
- Fixed issue where removing a reflection indirectly containing an object/function type would only partially remove the reflection, #2231.
- Fixed "Implementation of X.y" links if a mixture of methods and property-methods are used, #2233.
- "Implementation of" text to symbol-properties not contained in the documentation will now use the resolved name instead of a `__@` symbol name, #2234.
- Fix expansion of globs if a single entry point is provided, #2235.
- Validation will no longer be skipped for sub packages when running with `--entryPointStrategy packages`.
- Fixed broken theme toggle if the page contained a member named "theme".

### Thanks!

- @RunDevelopment

## v0.24.1 (2023-04-09)

### Bug Fixes

- Improve detection for legacy JSDoc `@example` tags, #2222.
- The page footer will now appear at the bottom of the page even if the page is short, #2223.

## v0.24.0 (2023-04-08)

### Breaking Changes

- `@link`, `@linkcode` and `@linkplain` tags will now be resolved with TypeScript's link resolution by default. The `useTsLinkResolution` option
  can be used to turn this behavior off, but be aware that doing so will mean your links will be resolved differently by editor tooling and TypeDoc.
- TypeDoc will no longer automatically load plugins from `node_modules`. Specify the `--plugin` option to indicate which modules should be loaded.
- The `packages` entry point strategy will now run TypeDoc in each provided package directory and then merge the results together.
  The previous `packages` strategy has been preserved under `legacy-packages` and will be removed in 0.25. If the new strategy does not work
  for your use case, please open an issue.
- Removed `--logger` option, to disable all logging, set the `logLevel` option to `none`.
- Dropped support for legacy `[[link]]`s, removed deprecated `Reflection.findReflectionByName`.
- Added `@overload` to default ignored tags.

### API Breaking Changes

- The `label` property on `Reflection` has moved to `Comment`.
- The default value of the `out` option has been changed from `""` to `"./docs"`, #2195.
- Renamed `DeclarationReflection#version` to `DeclarationReflection#projectVersion` to match property on `ProjectReflection`.
- Removed unused `Reflection#originalName`.
- Removed `Reflection#kindString`, use `ReflectionKind.singularString(reflection.kind)` or `ReflectionKind.pluralString(reflection.kind)` instead.
- The `named-tuple-member` and `template-literal` type kind have been replaced with `namedTupleMember` and `templateLiteral`, #2100.
- Properties related to rendering are no longer stored on `Reflection`, including `url`, `anchor`, `hasOwnDocument`, and `cssClasses`.
- `Application.bootstrap` will no longer load plugins. If you want to load plugins, use `Application.bootstrapWithPlugins` instead, #1635.
- The options passed to `Application.bootstrap` will now be applied both before _and_ after reading options files, which may cause a change in configuration
  if using a custom script to run TypeDoc that includes some options, but other options are set in config files.
- Moved `sources` property previously declared on base `Reflection` class to `DeclarationReflection` and `SignatureReflection`.
- Moved `relevanceBoost` from `ContainerReflection` to `DeclarationReflection` since setting it on the parent class has no effect.
- Removed internal `ReferenceType.getSymbol`, reference types no longer reference the `ts.Symbol` to enable generation from serialized JSON.
- `OptionsReader.priority` has been renamed to `OptionsReader.order` to more accurately reflect how it works.
- `ReferenceType`s which point to type parameters will now always be intentionally broken since they were never linked and should not be warned about when validating exports.
- `ReferenceType`s now longer include an `id` property for their target. They now instead include a `target` property.
- Removed `Renderer.addExternalSymbolResolver`, use `Converter.addExternalSymbolResolver` instead.
- Removed `CallbackLogger`.
- Removed `SerializeEventData` from serialization events.
- A `PageEvent` is now required for `getRenderContext`. If caching the context object, `page` must be updated when `getRenderContext` is called.
- `PageEvent` no longer includes the `template` property. The `Theme.render` method is now expected to take the template to render the page with as its second argument.
- Removed `secondaryNavigation` member on `DefaultThemeRenderContext`.
- Renamed `navigation` to `sidebar` on `DefaultThemeRenderContext` and `navigation.begin`/`navigation.end` hooks to `sidebar.begin`/`sidebar.end`.

### Features

- Added `--useTsLinkResolution` option (on by default) which tells TypeDoc to use TypeScript's `@link` resolution.
- Added `--jsDocCompatibility` option (on by default) which controls TypeDoc's automatic detection of code blocks in `@example` and `@default` tags.
- Reworked default theme navigation to add support for a page table of contents, #1478, #2189.
- Added support for `@interface` on type aliases to tell TypeDoc to convert the fully resolved type as an interface, #1519
- Added support for `@namespace` on variable declarations to tell TypeDoc to convert the variable as a namespace, #2055.
- Added support for `@prop`/`@property` to specify documentation for a child property of a symbol, intended for use with `@interface`.
- TypeDoc will now produce more informative error messages for options which cannot be set from the cli, #2022.
- TypeDoc will now attempt to guess what option you may have meant if given an invalid option name.
- Plugins may now return a `Promise<void>` from their `load` function, #185.
- TypeDoc now supports plugins written with ESM, #1635.
- Added `Renderer.preRenderAsyncJobs` and `Renderer.postRenderAsyncJobs`, which may be used by plugins to perform async processing for rendering, #185.
  Note: Conversion is still intentionally a synchronous process to ensure stability of converted projects between runs.
- TypeDoc options may now be set under the `typedocOptions` key in `package.json`, #2112.
- Added `--cacheBust` option to tell TypeDoc to include include the generation time in files, #2124.
- Added `--excludeReferences` option to tell TypeDoc to omit re-exports of a symbol already included from the documentation.
- Introduced new render hooks `pageSidebar.begin` and `pageSidebar.end`.

### Bug Fixes

- TypeDoc will now ignore package.json files not containing a `name` field, #2190.
- Fixed `@inheritDoc` on signatures (functions, methods, constructors, getters, setters) being unable to inherit from a non-signature.
- Interfaces/classes created via extending a module will no longer contain variables/functions where the member should have been converted as properties/methods, #2150.
- TypeDoc will now ignore a leading `v` in versions, #2212.
- Category titles now render with the same format in the page index and heading title, #2196.
- Fixed crash when using `typeof` on a reference with type arguments, #2220.
- Fixed broken anchor links generated to signatures nested within objects.

### Thanks!

- @bodil
- @futurGH
- @jm4rtinez
- @muratgozel

## v0.23.28 (2023-03-19)

### Features

- Added support for TypeScript 5.0, #2201.
  - `const` type parameters.
  - JSDoc `@overload` tag.
  - JSDoc `@satisfies` tag.

## v0.23.27 (2023-03-16)

### Features

- Added `--treatValidationWarningsAsErrors` to treat only validation warnings as errors without treating all warnings as errors, #2199.

### Bug Fixes

- Fixed a bug where optional properties were not appropriately marked as optional, #2200.
- Fixed shifted navigation pane on devices 1024px wide, #2191.
- Add missing `@private` and `@protected` tags to `typedoc/tsdoc.json`, #2187.

### Thanks!

- @futurGH

## v0.23.26 (2023-02-26)

### Features

- Added `Application.EVENT_VALIDATE_PROJECT` event for plugins which implement custom validation, #2183.
- Plugins may now return an object from external symbol resolvers, #2066.
- Expose `Comment.displayPartsToMarkdown` on for themes overwriting the `comment` helper, #2115.

### Bug Fixes

- Fix crash when converting `export default undefined`, #2175.
- Fix error in console when clicking on headings in the readme, #2170.
- TypeDoc will now ignore parameters of callback parameters when validating that all parameters have documentation, #2154.

### Thanks!

- @captain-torch
- @loopingz
- @RebeccaStevens

## v0.23.25 (2023-02-11)

### Breaking Changes

- Upgraded Shiki, if your highlight theme was set to `material-<theme>`, the value will need to be changed to
  `material-theme-<theme>`, see the [Shiki release notes](https://github.com/shikijs/shiki/blob/main/CHANGELOG.md#0130--2023-01-27).

### Features

- Added new `excludeNotDocumentedKinds` variable to control which reflection types can be removed
  by the `excludeNotDocumented` option, #2162.
- Added `typedoc.jsonc`, `typedoc.config.js`, `typedoc.config.cjs`, `typedoc.cjs` to the list of files
  which TypeDoc will automatically use as configuration files.

### Bug Fixes

- Entry points under `node_modules` will no longer be ignored, #2151.
- Corrected behavior of `excludeNotDocumented` on arrow function-variables, #2156.
- Added `package.json` to exports declaration.

### Thanks!

- @boneskull
- @Mikkal24
- @zamiell

## v0.23.24 (2023-01-07)

### Bug Fixes

- Fixed an issue where signature comments were preferred over property comments for indirectly created function-properties, #2135.
- Fixed symlink handling when expanding entry points, #2130.

### Thanks!

- @boneskull

## v0.23.23 (2022-12-18)

### Features

- Added `ts.Signature` to emitted `EVENT_CREATE_SIGNATURE` event, #2002.

### Bug Fixes

- Links to members hidden by filter settings now temporarily override the filter, #2092.
- If `src/` and `src/x` are specified as entry points, `src/` will no longer be ignored, #2121.

## v0.23.22 (2022-12-11)

### Features

- Add support for defining the kind sort order, #2109.

### Bug Fixes

- Normalize all file paths on Windows, #2113.
- Fix `@link` tags within lists, #2103.

## v0.23.21 (2022-11-14)

### Features

- Added support for a catch-all wildcard in `externalSymbolLinkMappings`, #2102.
- Added support for TypeScript 4.9.

### Thanks!

- @mistic100

## v0.23.20 (2022-11-03)

### Bug Fixes

- Fixed comment discovery for `@inheritDoc` if inheriting from a function type alias, #2087.

## v0.23.19 (2022-10-28)

### Bug Fixes

- Fixed title link if `titleLink` option was not specified, #2085.

### Thanks!

- @krisztianb

## v0.23.18 (2022-10-23)

### Features

- Improved error reporting when failing to find entry points, #2080, #2082.

### Bug Fixes

- Constructor parameter-properties will now use the `@param` comment for the parameter if available, #1261.
- Fixed display of object types containing methods, #1788.
- Fixed conversion of intrinsic string mapping types when converting without a type node, #2079.

## v0.23.17 (2022-10-18)

### Features

- Added `titleLink`, `navigationLinks` and `sidebarLinks` options to add additional links to the rendered output, #1830.
- Added `sourceLinkTemplate` option to allow more flexible specification of remote urls.
  Deprecated now redundant `gitRevision` detection starting with `https?://` introduced in v0.23.16, #2068.

### Thanks!

- @futurGH

## v0.23.16 (2022-10-10)

### Features

- Object types will now be pretty printed, #1793.
- Added support for specifying the tsconfig.json file in packages mode with `{ "typedoc": { "tsconfig": "tsconfig.lib.json" }}` in package.json, #2061.
- In packages mode, readme files will now be automatically included if present, #2065.
- Added support for specifying the base file url for links to source code, #2068.

### Bug Fixes

- Private parameter properties will no longer be ignored, #2064.

### Thanks!

- @captainTorch

## v0.23.15 (2022-09-18)

### Features

- TypeDoc will now treat `@typedef {import("foo").Bar<Z>} Baz` type declarations which forward type parameters to the imported
  symbol as re-exports of that symbol, #2044.

### Bug Fixes

- TypeDoc will now prefer comments on variable declarations over signature comments, #2042.
- Fixed double rendering of "Type Parameters" header, #2054.
- Fixed double rendering of "Hierarchy" header, #2053.
- Removed unused `widgets.png` and `widgets@2x.png` files from generated assets folder.

## v0.23.14 (2022-09-03)

### Features

- Added support for defining one-off external link mappings with `externalSymbolLinkMappings` see
  [the documentation](https://typedoc.org/options/comments/#externalsymbollinkmappings) for usage examples and caveats, #2030.
- External link resolvers defined with `addUnknownSymbolResolver` will now be checked when resolving `@link` tags, #2030.
  Note: To support this, resolution will now happen during conversion, and as such, `Renderer.addUnknownSymbolResolver` has been
  soft deprecated in favor of `Converter.addUnknownSymbolResolver`. Plugins should update to use the method on `Converter`.
  `DefaultThemeRenderContext.attemptExternalResolution` has also been deprecated since it will repeat work done during conversion,
  use `ReferenceType.externalUrl` instead.
- Added `Converter.addUnknownSymbolResolver` for use by plugins supporting external links.

### Bug Fixes

- Fixed conversion of object literal types containing construct signatures, #2036.
- Fixed centering of title bar on wide displays, actually this time, #2046.

## v0.23.13 (2022-09-01)

### Bug Fixes

- Fixed packages mode bug introduced in 0.23.12, #2043.

## v0.23.12 (2022-08-31)

### Features

- Added a new `ParameterType.Object` for declaring object options which will be shallowly merged when read from user configuration.
- Added a new `Application.EVENT_BOOTSTRAP_END` event emitted when `Application.bootstrap` is called.

### Bug Fixes

- TypeDoc will now work properly in packages mode when converting packages outside the current working directory, #2043.
- Fixed deprecation warning for `isIdentifierOrPrivateIdentifier`.
- Fixed centering of title bar on wide displays, #2046.

### Thanks!

- @citkane

## v0.23.11 (2022-08-26)

### Features

- Added support for TypeScript 4.8.
- Introduced a `skipErrorChecking` option which instructs TypeDoc to not ask TypeScript for compiler errors
  before attempting to generate documentation. Turning this on may improve generation speed, but could also
  cause a crash if your code contains compiler errors.
- Added support for JS entry points when using packages mode, #2037.

### Bug Fixes

- Fixed crash when converting abstract mixin class, #2011.
- Readme files within monorepos now have `@link` tags resolved, #2029.
- Correctly resolve unqualified links to class members within parameters, #2031.
- TypeDoc will now consider other reflections with the same name as parents when resolving links, #2033.
- The "Hierarchy" and "Type Parameters" helpers on `DefaultThemeRenderContext` now contain all the HTML for their sections of the page, #2038.

### Thanks!

- @citkane
- @kaphula

## v0.23.10 (2022-07-31)

### Features

- Added support for detecting comments directly before parameters as the parameter comment, #2019.
- Added support for using the comment directly before a constructor parameter that declares a property as the property comment, #2019.
- Improved schema generation to give better autocomplete for the `sort` option.
- Optional properties are now visually distinguished in the index/sidebar by rendering `prop` as `prop?`, #2023.
- `DefaultThemeRenderContext.markdown` now also accepts a `CommentDisplayPart[]` for rendering, #2004.
- Expose `Converter.resolveLinks` method for use with `Converter.parseRawComment`, #2004.

### Bug Fixes

- Fixed schema URL for TSDoc preventing the use of `typedoc/tsdoc.json` in TSDoc extends, #2015.
- Improved detection of package names in repositories using pnpm, #2017.
- Fixed missing JSDoc style `@typedef` comments for properties, #2020.

### Thanks!

- @bodil
- @nazarhussain

## v0.23.9 (2022-07-24)

### Bug Fixes

- TypeDoc will no longer skip entry points which have no exports, #2007.
  If using `"entryPointStrategy": "expand"`, this change may result in new pages being added to your documentation.
  If this is not desired, you can use the `exclude` option to filter them out.
- Fixed missing comments on callable variable-functions constructed indirectly, #2008.
- Packages mode will now respect the `--includeVersion` flag, #2010.
- Fixed multiple reflections mapping to the same file name on case insensitive file systems, #2012.

## v0.23.8 (2022-07-17)

### Features

- Added defined in links for classes, enums, #180.
- Added support for `*.ghe.com` and `*.github.us` GitHub enterprise domains for source links, #2001.
- Expose `Converter.parseRawComment` for plugins to parse additional markdown files, #2004.

### Bug Fixes

- TypeDoc will no longer emit a warning for `{@link}` containing a URL, #1980.
- `excludeNotDocumented` will no longer remove functions/methods/accessors which are documented, #1994.
- Fixed missing `sources` property on signature reflections #1996.

### Thanks!

- @cary-hu
- @chadhietala

## v0.23.7 (2022-07-09)

### Bug Fixes

- Tags must now contain whitespace after the tag name to be parsed as a tag, `@jest/globals` in a comment will no longer be parsed as a tag #1990.
- The private member visibility option will now be respected in generated sites, #1992.
- Overload rendering will no longer be broken if JavaScript is disabled, #453.
- All overloads are now shown at once rather than requiring clicks to see the documentation for each signature, #1100.

## v0.23.6 (2022-07-08)

### Features

- Improved support for `--entryPointStrategy Packages`. TypeDoc will now load package-specific configurations from `package.json` `typedoc` field. This configuration allows configuring a custom display name (`typedoc.displayName`) field, entry point (`typedoc.entryPoint` - this is equivalent and will override `typedocMain`), and path to a readme file to be rendered at the top of the package page (`typedoc.readmeFile`), #1658.
- The `--includeVersion` option will now be respected by `--entryPointStrategy Packages`. Also, for this combination, missing `version` field in the root `package.json` will not issue a warning.
- The `navigation` partial will now call the new `settings`, `primaryNavigation`, and `secondaryNavigation` partials, #1987.

### Bug Fixes

- All warnings will be reported instead of only the first warning of a given type, #1981.
- Include references will no longer be incorrectly parsed as links, #1986.
- The generated schema.json on the website will now use enum values rather than enum names if possible.

### Thanks!

- @akphi
- @zamiell

## v0.23.5 (2022-07-02)

### Features

- The `DEBUG_SEARCH_WEIGHTS` global variable can now be set on `window` to add search scoring information in the search results.
- TypeDoc's icons are now available on `DefaultThemeRenderContext.icons` for use/modification by themes.

## v0.23.4 (2022-07-02)

### Bug Fixes

- TypeDoc no longer ignores project references if `--entryPointStrategy Packages` is set, #1976.
- Boost computations are now done when creating the search index, resulting in a smaller `search.js` generated file.

### Features

- The `--exclude` option will now be respected by `--entryPointStrategy Packages` and can be used to exclude package directories, #1959.
- TypeDoc now emits an `IndexEvent` on the `Renderer` when preparing the search index, #1953.
- Added new `--searchInComments` option to include comment text in the search index, #1553.
  Turning this option on will increase the size of your search index, potentially by an order of magnitude.

## v0.23.3 (2022-07-01)

### Bug Fixes

- Function properties in type space will no longer be interpreted as methods, #1637.
- TypeDoc will no longer crash if a comment contains an empty `@example` tag, #1967.
- TypeDoc will now detect attempted inheritance from accessors and inherit from the getter or setter, #1968.
- `intentionallyNotExported` will now properly respect qualified names, #1972.
- Fixed missing namespace comments on `export * as NS` declarations, #1973.
- Fixed missing comments on `export const x = () => 123` function variables, #1973.
- Exported variable functions with properties will now be converted as a function+namespace instead of a variable+namespace, #1651.
- Validation warnings caused by missing documentation will now be formatted like other warnings which reference a declaration.
- TypeDoc will no longer warn if both the `get` and `set` signatures of an accessor have a comment.

### Features

- Added `--htmlLang` option to set the [`lang`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/lang) attribute in the generated HTML. Defaults to `en`, #1951.
- Added `--basePath` option to override TypeDoc's detected root directory, #1924.
- Added support for TypeDoc specific `:getter` and `:setter` meaning keywords in declaration references.
- Warnings caused by comment contents will now do a better job of including the location of the text that caused the warning.

## v0.23.2 (2022-06-28)

### Bug Fixes

- Module comments will no longer be inappropriately attached to signatures, #1962.
- Projects with a single entry point will now parse `@module` comments in the entry point, #1963.
- Removed duplicate "in comment" warning when parsing comments, #1964.
- Reflections with a boost of `<= 0` due to `searchCategoryBoosts` or `searchGroupBoosts` will be excluded from search.

## v0.23.1 (2022-06-26)

### Bug Fixes

- If a declaration has multiple comments associated with it, the last one should be used, #1961.

## v0.23.0 (2022-06-26)

### Breaking Changes

- Node 12 is no longer officially supported as it has gone end of life as of 2022-04-30. It might still work, but may stop working at any time.
- Dropped support for TypeScript before 4.6.
- `{@link}` tags in comments will now be resolved as declaration references similar to TSDoc's declaration references.
  For most cases, this will just work. See [the documentation](https://github.com/TypeStrong/typedoc-site/blob/da9760bccf30ce96210f6e35b9dcc2a4ddeed234/guides/link-resolution.md) for details on how link resolution works.
- TypeDoc will now produce warnings for bracketed links (`[[ target ]]`). Use `{@link target}` instead. The `{@link}` syntax will be recognized by [TypeScript 4.3](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-3.html#editor-support-for-link-tags) and later and used to provide better intellisense. TypeDoc version 0.24.0 will remove support for `[[ target ]]` style links.
  Support for ``[[`links`]]`` with brackets + code ticks have been dropped.
- `extends` in typedoc.json is now resolved using NodeJS module resolution, so a local path must begin with `./`.
- In the JSON output for `DeclarationReflection`s, `getSignature` is no longer a one-tuple.
- In the JSON output for `DeclarationReflection`s, `setSignature` is no longer a one-tuple.
- In the JSON output for `DeclarationReflection`s, `typeParameter` has been renamed to `typeParameters`
- The `searchGroupBoosts` option must now be given the rendered group name rather than reflection kind names, and can be given custom group names.
- `@inheritDoc` now follows the behavior specified by TSDoc when copying comments with a reference.
- The `gaSite` option has been removed since Google Analytics now infers the site automatically, updated Google Analytics script to latest version, #1846.
- The `hideLegend` option has been removed as the default theme no longer contains a legend.
- Comments on export declarations will only overrides comments for references and namespaces, #1901.
- The deprecated `listInvalidSymbolLinks` option has been removed. Use `validation.invalidLink` instead.
- The deprecated `true` and `false` values have been removed from `--emit`, to migrate replace `true` with `"both"` and `false` with `"docs"` (the default).
- Links are no longer be resolved against a global list of all symbols. See [the documentation](https://github.com/TypeStrong/typedoc-site/blob/da9760bccf30ce96210f6e35b9dcc2a4ddeed234/guides/link-resolution.md) for details on link resolution.
- The `validation.invalidLink` option is now on by default.
- `reflection.decorates`, `reflection.decorators`, and their corresponding interfaces have been removed as no code in TypeDoc used them.
- The shape of the `Comment` class has changed significantly to support multiple tag kinds.
- Listeners to `Converter.EVENT_CREATE_TYPE_PARAMETER` and `Converter.EVENT_CREATE_DECLARATION` will now never be passed a `ts.Node` as their third argument.
- Constant variables which are interpreted as functions will no longer have the `ReflectionFlag.Const` flag set.
- `reflection.defaultValue` is no longer set for enum members. The same information is available on `reflection.type` with more precision.
- Removed deprecated `removeReaderByName`, `addDeclarations` and `removeDeclarationByName` methods on `Options`.
- Removed `ProjectReflection.directory`, it was unused by TypeDoc and not properly tested.
- Removed `ProjectReflection.files`, this was an internal cache that should not have been exposed, and shouldn't have existed in the first place, since removing it made TypeDoc faster.
- Removed `ReflectionGroup.kind` since groups can now be created with the `@group` tag.
- Removed `ReflectionKind.Event`, the `@event` tag is now an alias for `@group Events`. Note: This changes the value of `ReflectionKind.Reference` from `16777216` to `8388608`.
- Themes are now set on the document element rather than on body, #1706.

### Features

- TypeDoc now supports the `@group` tag to group reflections in a page. If no `@group` tag is specified, reflections will be grouped according to their kind, #1652.
- TypeDoc will now search for `typedoc.js(on)` in the `.config` folder in the current working directory.
- Entry point strategies `Resolve` and `Expand` may now specify globs, #1926.
- `typedoc.json` now supports comments like `tsconfig.json`.
- TypeDoc will now read the `blockTags`, `inlineTags`, and `modifierTags` out of `tsdoc.json` in the same directory as `tsconfig.json` if it exists.
  It is recommended to add `"extends": ["typedoc/tsdoc.json"]`, which defines TypeDoc specific tags to your `tsdoc.json` if you create one.
- If an exported symbol has multiple declarations, TypeDoc will now check all appropriate declarations for comments, and warn if more than one declaration contains a comment, #1855.
- Improved support for JSDoc style `@example` tags. If the tag content does not include a code block, TypeDoc now follows VSCode's behavior of treating the entire block as a code block, #135.
- TypeDoc will now render members marked with `@deprecated` with a line through their name, #1381.
- Added new `commentStyle` option which can be used to control what comments TypeDoc will parse.

  | Value | Behavior                               |
  | ----- | -------------------------------------- |
  | JSDoc | Use block comments starting with `/**` |
  | Block | Use all block comments                 |
  | Line  | Use `//` comments                      |
  | All   | Use both block and line comments       |

- TypeDoc will now warn if part of a comment will be overwritten due to use of `@inheritDoc` instead of silently dropping part of the comment.
- Added support for inline `@inheritDoc` tags, #1480.
- It is now possible to link directly to a specific overload, #1326.
- The JSON output will now include URLs to the file on the remote repository if possible.
- Added a new `visibilityFilters` option which controls the available filters on a page.
- TypeDoc will now try to place block elements on a new line in HTML output, resulting in less overwhelming diffs when rebuilding docs, #1923.
- Added `blockTags`, `inlineTags`, `modifierTags` to control which tags TypeDoc will allow when parsing comments.
  If a tag not in in one of these options is encountered, TypeDoc will produce a warning and use context clues to determine how to parse the tag.

### Bug Fixes

- Fixed off by one error in warnings for types referenced but not included in the documentation.
- TypeDoc will no longer render a `Type Parameters` heading if there are no type parameters in some cases.
- Improved source location detection for constructors.
- Improved comment discovery on destructured exported functions, #1770.
- Links which refer to members within a reference reflection will now correctly resolve to the referenced reflection's member, #1770.
- Correctly detect optional parameters in JavaScript projects using JSDoc, #1804.
- Fixed identical anchor links for reflections with the same name, #1845.
- TypeDoc will now automatically inherit documentation from classes `implements` by other interfaces/classes.
- Fixed `@inheritDoc` on accessors, #1927.
- JS exports defined as `exports.foo = ...` will now be converted as variables rather than properties.
- `searchCategoryBoosts` are now correctly computed for all categories, #1960.
- The `excludeNotDocumented` option will no longer hide a module if it has a documentation comment, #1948.
- Prevent `--excludeNotDocumented` from hiding properties of type literals (`a` in `function fn(p: { a: string })`), #1752.
- Allow `cts` and `mts` extensions in packages resolution mode, #1952.
- Corrected schema generation for https://typedoc.org/schema.json

### Thanks!

- @aqumus
- @fb55
- @futurGH
- @Shane4368
- @shmax

## v0.22.18 (2022-06-25)

### Features

- Relaxed restrictions on `@enum` style enums to also permit non-literal strings and numbers, #1956.

### Bug Fixes

- `searchGroupBoosts` was only computing the boost for the first reflection in a group, #1958.

### Thanks!

- @shmax
- @Zamiell

## v0.22.17 (2022-06-01)

### Features

- Added support for documenting a module's global declarations as its exports if it contains no real exports.

### Bug Fixes

- Restore support for TS 4.0 through 4.5, #1945.

## v0.22.16 (2022-05-30)

### Features

- Added support for TypeScript 4.7, #1935.
- Support enum-like objects with numeric literal values tagged with `@enum`, #1918.
- Enum member reflections will now have their `type` set to either a `LiteralType` with a string or numeric value or an `IntrinsicType` with type `number`, #1942.
  Using `defaultValue` on `EnumMember` reflections is now deprecated, and will be broken in 0.23.

### Bug Fixes

- Fixed invalid type output in some uncommon edge cases, TypeDoc also now renders fewer superfluous parenthesis when creating types.
- TypeDoc is now more consistent about ordering with `enum-value-ascending` or `enum-value-descending` sort strategies in mixed string/number enums.

### Thanks!

- @ejuda
- @Zamiell

## v0.22.15 (2022-04-10)

### Features

- Classes which are `abstract` and enums which are `const` will now be indicated in their rendered documentation, #1874.
- Added a new option `compilerOptions`, which can be used to override compiler options read from `tsconfig.json`, #1891.
- Added new render hooks: `content.begin`, `content.end`, `navigation.begin`, `navigation.end`

### Bug Fixes

- TypeDoc will now warn if a project name/version cannot be inferred from a package.json file rather than using `undefined`, #1907.

### Thanks!

- @ejuda
- @matteobruni
- @schlusslicht

## v0.22.14 (2022-04-07)

### Bug Fixes

- Fixed missing comments on `@enum` style enum members defined in declaration files, #1880.
- Fixed `--validation.notDocumented` warnings for functions/methods/type aliases, #1895, #1898.
- Search results will no longer include random items when the search bar is empty, #1881.
- Comments on overloaded constructors will now be detected in the same way that overloaded functions/methods are.
- Fixed `removeReflection` not completely removing reflections from the project, #1898.
- Fixed `@hidden` / `@ignore` / `@exclude` comments on default exports with no associated variable, #1903.
- `makeRecursiveVisitor` will now correctly call the `intersection` callback, #1910.

### Thanks!

- @nlepage
- @ychan167

## v0.22.13 (2022-03-06)

### Features

- Add support for TypeScript 4.6, #1877.
- Support copying `@param` comments for nested members that target union and intersection types, #1876.

### Bug Fixes

- Fixed validation for `--requiredToBeDocumented` option, #1872.
- Fixed missing `this` parameters in documentation for some functions, #1875.

## v0.22.12 (2022-02-20)

### Features

- Added `--validation.notDocumented` option to warn on items that are not documented, #1817.

### Bug Fixes

- Fixed `const` variables not properly marked as `const`, #1866.

### Thanks!

- @albyrock87
- @Nokel81

## v0.22.11 (2022-01-18)

### Features

- Added new `cname` option for GitHub Pages custom domain support, #1803.
- `ReferenceType`s which reference an external symbol will now include `qualifiedName` and `package` in their serialized JSON.
- Added clickable anchor link for member titles, #1842.

### Bug Fixes

- Fixed line height of `h1` and `h2` elements being too low, #1796.
- Code blocks in the light theme will no longer have the same background as the rest of the page, #1836.
- Symbol names passed to `addUnknownSymbolResolver` will now be correctly given the qualified name to the symbol being referenced, #1832.
- The search index will now be written as JSON, reducing load times for large projects, #1825.

### Thanks!

- @adeniszczyc
- @dragomirtitian
- @matteobruni
- @srmagura
- @stefanobaghino-da

## v0.22.10 (2021-11-25)

### Features

- Added support for TypeScript 4.5, #1798.

### Bug Fixes

- If file exports a symbol both under it's real name and as `default`, the `default` export will now always be the renamed symbol, #1795.
- TypeDoc will no longer crash if a symbol is defined both as a normal class (and optional interface) and as a property, as is used for global Node types in older `@types/node` versions, Gerrit0/typedoc-plugin-missing-exports#5.

## v0.22.9 (2021-11-14)

### Features

- TypeDoc will now detect and warn if multiple instances of the package are loaded. This usually means that a plugin has its own version of TypeDoc installed, which will lead to things breaking in unexpected ways.
  It will only work if both loaded TypeDocs are v0.22.9 or later.
- TypeDoc will now automatically load packages with `typedoc-theme` in their keywords.
  Plugins which define a custom theme should include this keyword so that they can be automatically collected and displayed at https://typedoc.org/guides/themes/.

### Bug Fixes

- Corrected HTML generation for projects using Google Analytics, #1786.
- Ensured that the `<meta charset="utf-8" />` appears within the first 1024 bytes of generated pages, #1783.

### Thanks!

- @RunDevelopment

## v0.22.8 (2021-11-07)

### Features

- Added hooks which can be used to inject HTML without completely replacing a template, #1773.
  See the documentation in [custom-themes.md](https://github.com/TypeStrong/typedoc/blob/v0.22.8/internal-docs/custom-themes.md) for details.

### Bug Fixes

- Actually fixed `@category` tag incorrectly appearing on function types if used on a type alias, #1745.
- Fix error in console when a page contains no documentation items.

### Thanks!

- @RunDevelopment
- @srmagura

## v0.22.7 (2021-10-25)

### Features

- Added support for GitHub enterprise projects with a `githubprivate.com` domain, #1743.
- Added support for GitLab repositories, #1728.

### Bug Fixes

- Replaced O(n^2) with O(1) implementation for determining unique IDs in a rendered page, #1755.
- Fixed crash with when running in very large repositories, #1744.
- Fixed visible gap after footer in dark mode if `hideGenerator` is set, #1749.
- Fixed `@category` tag incorrectly appearing on function types if used on a type alias, #1745.
- Fixed incorrect JS to apply themes on page load, #1709 (again).
- Accessors and index signatures are now properly marked as inherited on declaration creation, #1742.

### Thanks!

- @nlfurniss
- @RunDevelopment
- @srmagura

## v0.22.6 (2021-10-17)

### Features

- Added support for displaying identifiers & property access expressions in initializers, #1730.
- Expanded support for variables tagged with `@enum` to all variables whose property types are string literals, #1740.

### Bug Fixes

- Fixed flash when navigating to a second page when OS theme does not match selected theme, #1709.
- Fixed improper quoting of `as const` style enums, #1727.
- Fixed handling of `@typeParam` on type aliases, #1733.
- Fixed handling of comment tags on function type aliases, #1734.
- Paths in warnings about non-exported symbols are now consistently displayed across platforms, #1738.

### Thanks!

- @capraynor
- @srmagura

## v0.22.5 (2021-10-02)

### Features

- TypeDoc will now recognize `@param` comments for destructured parameters and rename `__namedParameters` to the name specified
  in the `@param` comment if the number of `@param` comments match the number of parameters, resolves #1703.
- The `intentionallyNotExported` option may now include file names/paths to limit its scope, for example, the following
  will suppress warnings from `Foo` in `src/foo.ts` not being exported, but will not suppress warnings if another `Foo`
  declared in `src/utils/foo.ts` is not exported.
  ```json
  {
      "intentionallyNotExported": ["src/foo.ts:Foo"]
  }
  ```
- The `--emit` option can now be used to more finely control what TypeDoc will emit.
  | Value   | Behavior                                                                |
  | ------- | ----------------------------------------------------------------------- |
  | `both`  | Emit both documentation and JS.                                         |
  | `docs`  | Emit documentation, but not JS (default).                               |
  | `none`  | Emit nothing, just convert and run validation.                          |
  | `true`  | Alias for `both`, for backwards compatibility. Will be removed in 0.23. |
  | `false` | Alias for `docs`, for backwards compatibility. Will be removed in 0.23. |

### Bug Fixes

- TypeDoc will now only create one highlighter for rendering code, saving ~200-500ms for rendering time.
- For compatibility with JSDoc, TypeDoc will now strip `<caption>` elements from `@example` tags, resolves #1679.
- TypeScript's `emitDeclarationOnly` compiler option is now supported, resolves #1716.
- Fixed discovery of tsconfig.json when the provided path ends in `.json`, resolves #1712.
- Fixed a crash when converting the `globalThis` namespace, could only be caused by a plugin.

### Thanks!

- @Gudahtt
- @mgred
- @schlusslicht
- @srmagura

## v0.22.4 (2021-09-18)

### Features

- Flag option types like `validation` can now be set to true/false to enable/disable all flags within them.
- Source code links now work with Bitbucket repositories, resolves #1615.
- Added `githubPages` option (default: true), which will create a `.nojekyll` page in the generated output, resolves #1680.
- `MarkdownEvent` is now exported, resolves #1696.

### Bug Fixes

- Fixed the hamburger menu not being visible on mobile devices, fixes #1699.
- Comments on function implementations with overloaded signatures will now be correctly handled, fixes #1697.

### Thanks!

- @srmagura

## v0.22.3 (2021-09-12)

### Bug Fixes

- Switched the default highlighting themes back to `light-plus` and `dark-plus`, they were accidentally set to `min-light` and `min-dark` in v0.22.0.

### Features

- Added new `validation` option which can be used to disable checks for non-exported symbols.
  On the command line, this can be specified with `--validation.notExported true`, or in an options file with:
  ```json
  {
      "validation": {
          "notExported": true
      }
  }
  ```
- Added invalidLink to `validation` option, deprecated `listInvalidSymbolLinks`, which will be removed in 0.23.

## v0.22.2 (2021-09-11)

### Bug Fixes

- Fix background color of tables in dark mode, closes #1684.

## v0.22.1 (2021-09-10)

### Bug Fixes

- Validation for non-exported symbols will now only produce one warning per symbol, instead of one warning per reference.
- Syntax highlighting when the preferred color scheme is dark but dark theme is not explicitly selected will now properly use the dark highlighting theme.

## v0.22.0 (2021-09-10)

### Breaking Changes

- The `packages` and `entryPoints` options have been combined.
  To migrate configurations which used `packages`, replace `packages` with `entryPoints` and set `entryPointStrategy` to `packages`.
- Renamed `disableOutputCheck` to `cleanOutputDir` to more clearly reflect its behavior.
- The `highlightTheme` option has been split into `lightHighlightTheme` and `darkHighlightTheme`.
- Removed poorly documented / poorly behaved `toc` option.
- HTML output is now rendered with JSX instead of Handlebars, closes #1631.
  This change provides major performance benefits, reducing rendering time by up to 10x for several benchmarked projects.
  It also allows themes to be easily type checked, preventing mistakes when creating custom themes.
  Removing Handlebars also fixed memory leaks when `--watch` was specified due to Handlebar's caching mechanism.
  This change breaks all existing custom themes, so a theme created for v0.21 or earlier will not work in v0.22.
  See [internal-docs/custom-themes.md](https://github.com/TypeStrong/typedoc/blob/v0.22.0/internal-docs/custom-themes.md) for documentation on how to create a custom theme in v0.22.
- Removed the minimal theme that has been mostly broken for a long time.
- Changed the default `entryPointStrategy` from `expand` to `resolve`.
- Paths in config files will now be resolved relative to the config file instead of relative to the current working directory.
- Exclude patterns are now checked against files instead of against each part of the path as traversed, #1399.
  This means that an exclude of `**/someDir` will **not** exclude files in that directory. To exclude files in a directory, specify `**/someDir/**`.

### Features

- Added support for light/dark mode to the default theme, closes #1641.
- Added support for custom CSS with the new `customCss` option, closes #1060.
- Added support for linking to third party documentation sites, closes #131. See [internal-docs/third-party-symbols.md](https://github.com/TypeStrong/typedoc/blob/v0.22.0/internal-docs/third-party-symbols.md)
  for documentation on how to create a plugin which enables this.
  Support for linking to MDN for global types is provided by [typedoc-plugin-mdn-links](https://github.com/Gerrit0/typedoc-plugin-mdn-links).
- Added `entryPointStrategy` to reduce confusion from new TypeDoc users on handling of entry points.
  There are three possible options:
  | Option            | Behavior                                                                                                                                                                                    |
  | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
  | resolve (default) | Expects all entry points to be contained within the root level tsconfig project. If a directory is given, includes `<directory>/index` as the entry point.                                  |
  | expand            | Expects all entry points to be contained within the root level tsconfig project. If a directory is given, files within it are recursively expanded. This was the default behavior in v0.21. |
  | packages          | Corresponds to `--packages` in v0.21, behaves as documented in the Monorepo section in the readme.                                                                                          |
- Added support for `typedocMain` in package.json when using the `packages` strategy for resolving entry points.
- Produce warnings when documentation is missing exports, closes #1653. If using TypeDoc's API, this behavior is available through calling `application.validate(project)`.
- Added support for detecting "`as const` enums", closes #1675.
- Added `hideLegend` option, closes #1108.
- Added performance measurements to debug logging (`--logLevel Verbose`)
- String literal indexed access types will create links to their referencing member if possible, closes #1226.

### Bug Fixes

- Support inclusion patterns when expanding input files, closes #1399.
- Arrow keys can no longer select hidden search results.
- The Legend header will no longer be included if there is nothing in the legend.
- If a non-function uses `@param`, the name will not be dropped when rendering, closes #1410.

### API Breaking Changes

- TypeDoc now specifies the `"export"` key in `package.json`, preventing plugins from importing internal paths.
  TypeDoc should now export all necessary structures (potentially marked with `@internal` if likely to change) from the root export.
- The `ReflectionKind` values for `Project`, `Module`, `Namespace`, and `Enum` have changed.
- Removed deprecated logger functions.
- Dropped support for legacy plugins which use `export=`. Plugins are now required to export a `load` function.
- Remove `TypeParameterType`, references to type parameters have produced a `ReferenceType` since v0.20.0.
- Types no longer have a `clone` method. It inconsistently performed deep or shallow clones, and was not used by TypeDoc.
- Types no longer contain an `equals` method. It was occasionally correct for medium-complexity types, and always incorrect for more complicated types.

### Thanks!

- @cspotcode
- @itsjamie

## v0.21.9 (2021-08-29)

### Bug Fixes

- Support highlighting language aliases (#1673), closes #1672

### Thanks!

- @StoneCypher

## v0.21.8 (2021-08-28)

### Features

- Upgrade Shiki to 0.9.8, adds support for several new highlighting languages

### Thanks!

- @StoneCypher

## v0.21.7 (2021-08-27)

### Features

- Support for TypeScript 4.4, closes #1664

## v0.21.6 (2021-08-19)

### Features

- Add support for NO_COLOR environment variable (#1650)

### Bug Fixes

- Handle undefined symbols in query types, closes #1660

### Thanks!

- @krisztianb

## v0.21.5 (2021-07-31)

### Features

- Support Node v12.10 (#1632), closes #1628

### Bug Fixes

- Implicitly set noEmit unless --emit is provided, closes #1639

### Thanks!

- @betaorbust

## v0.21.4 (2021-07-12)

### Bug Fixes

- Constructors did not have source information set, closes #1626

## v0.21.3 (2021-07-10)

### Breaking Changes

- Options may not be set once conversion starts. Enables a small perf improvement.

### Bug Fixes

- Improve detection for "property methods" to convert as methods, closes #1624
- Two members differing only by case produced broken links, closes #1585
- Resolve some memory leaks

### Thanks!

- @cspotcode

## v0.21.2 (2021-06-27)

### Bug Fixes

- Postpone resolution of inherited classes until their parents have been resolved, closes #1580

## v0.21.1 (2021-06-25)

### Bug Fixes

- Exclude empty modules from documentation, closes #1607
- `readme` could not be set to `none` in a config file, closes #1608
- Correctly handle minimatch excludes on Windows, closes #1610

## v0.21.0 (2021-06-18)

### Breaking Changes

- Drop support for Node v10
- Plugins are now passed Application directly
- Drop support for TypeScript 3.9

### Features

- Improve monorepos by adding support for TS entry points (#1596)
- Support for monorepos
- Support for TypeScript 4.3
- Add support for sorting reflections based on user criteria, closes #112
- Add the --treatWarningsAsErrors option, closes #1568
- The exclude option will now remove symbols re-exported from excluded files, closes #1578

### Bug Fixes

- Correctly handle comments on function type aliases, closes #799
- Setters should always have a `void` return type, closes #1215
- Resolve paths in option files according to the config directory, closes #1598, #1442
- Pick up doc comments for properties declared within a class's constructor, closes #1255
- Inherit comments from parent methods, closes #1580
- Correct handling for intentionally broken references
- Inheritance from multiple Partial<T> types was incorrectly converted, closes #1579

### Thanks!

- @efokschaner
- @Unnvaldr

## v0.20.37 (2021-06-16)

### Features

- Add disableAliases option (#1576), closes #1571

### Bug Fixes

- Pin `marked` dependency to 2.0.x (#1602), closes #1601

### Thanks!

- @Fleker
- @Unnvaldr

## v0.20.36 (2021-04-23)

### Features

- use 'pretty' option when generating json
- create 'pretty' option

### Bug Fixes

- Always write to stdout, even if redirected, closes #1566
- Create directories when writing JSON output

### Thanks!

- @cAttte

## v0.20.35 (2021-04-03)

### Features

- Include debugging information in highlighting error messages (#1561)

### Bug Fixes

- Relax simple expression requirements for default values, closes #1552
- Handle #private getters + methods, closes #1564

### Thanks!

- @MasatoMakino

## v0.20.34 (2021-03-25)

### Bug Fixes

- Crash when converting recursive type alias, closes #1547
- Discover module comments for global files, closes #1549
- Detect references when export \* is used, closes #1551

## v0.20.33 (2021-03-22)

### Bug Fixes

- Static properties of Error class incorrectly converted, closes #1541, #572

## v0.20.32 (2021-03-14)

### Bug Fixes

- Correct crash with reflection types, closes #1538

## v0.20.31 (2021-03-14)

### Features

- Improved warning message if TypeDoc is loaded multiple times.

### Bug Fixes

- readonly tuples were recognized as arrays, closes #1534
- Constructors were improperly reported as inherited, closes #1528, #1527

### Thanks!

- @Minhir

## v0.20.30 (2021-03-06)

### Bug Fixes

- Categories should only appear once if specified multiple times, closes #1522
- Support JSDocNullableType, JSDocNonNullableType, closes #1524
- Remove undefined from optional property types, closes #1525

## v0.20.29 (2021-03-04)

### Features

- Support for TypeScript 4.2, closes #1517

## v0.20.28 (2021-02-23)

### Bug Fixes

- Detect visibility modifiers on accessors, closes #1516

## v0.20.27 (2021-02-20)

### Features

- preserve spaces in code blocks

### Bug Fixes

- Detect and normalize unique symbol names, closes #1514

### Thanks!

- @MichaelFroeschen

## v0.20.26 (2021-02-20)

### Bug Fixes

- Pick up optional/readonly from mapped types, closes #1509

## v0.20.25 (2021-02-15)

### Features

- Support for specifying comments on export declarations, closes #1504

## v0.20.24 (2021-02-11)

### Features

- add support for non .com gh enterprise domains (#1507)

### Thanks!

- TUNER88

## v0.20.23 (2021-02-06)

### Bug Fixes

- Missing namespace members when ns is created by re-exporting an entire module, closes #1499
- Set inheritedFrom on accessor signatures, closes #1497, #1498

### Thanks!

- @siddharthvp

## v0.20.22 (2021-02-06)

### Bug Fixes

- Import from shiki rather than shiki-themes, closes #1496

## v0.20.21 (2021-02-05)

### Bug Fixes

- Missing exported members in file-as-namespace reflection, closes #1493

## v0.20.20 (2021-01-31)

### Features

- add highlight theme option

### Bug Fixes

- Missing comments on optional methods, closes #1490
- Avoid crash with removed project reflection, closes #1489
- function-namespaces were converted incorrectly, closes #1483
- add validation to highlightTheme option

### Thanks!

- @nzmattman

## v0.20.19 (2021-01-25)

### Features

- Support for --watch, --preserveWatchOutput, --emit

## v0.20.18 (2021-01-24)

### Bug Fixes

- Static methods added to the class manually in JS, closes #1481

## v0.20.17 (2021-01-23)

### Features

- Add support for copying item’s documentation by copying it from another API item

### Bug Fixes

- CommonJS export= with type exports, closes #1476

### Thanks!

- @Dergash

## v0.20.16 (2021-01-17)

### Bug Fixes

- Comments on projects were broken
- Constructors were a bit broken

## v0.20.15 (2021-01-16)

### Features

- Support for excludeInternal, closes #1469
- add option to read more categories from doc

### Bug Fixes

- Crash when converting `@types/ws`, closes #1463
- replace return with continue
- excludeNotDocumented incorrectly ignored some symbols, closes #1465
- Support for JSDoc `@enum` tags, closes #1464

### Thanks!

- @brunozoric

## v0.20.14 (2021-01-09)

### Bug Fixes

- Crash with destructured export const, closes #1462
- Add support for optional types, closes #1312
- Add support for rest types, closes #1457
- Avoid using process.exit (#1461)

### Thanks!

- @krisztianb

## v0.20.13 (2021-01-06)

### Bug Fixes

- Use type nodes if converting a regular function, closes #1454

## v0.20.12 (2021-01-05)

### Bug Fixes

- Arrow methods did not have modifiers set properly, closes #1452
- Add support for import types, closes #1453
- Don't document type arguments if there are none (#1451)

### Thanks!

- @krisztianb

## v0.20.11 (2021-01-04)

### Bug Fixes

- Crash when converting a generic with a tuple constraint, closes #1449

## v0.20.10 (2021-01-03)

### Bug Fixes

- Errors due to bad options in tsconfig file were dropped, closes #1444

## v0.20.9 (2021-01-02)

### Bug Fixes

- Regression caused by 1886304f327da5642097834feac0387fd1b78b6e
- Parameter declarations might not exist, closes #1443

## v0.20.8 (2021-01-01)

### Bug Fixes

- CLI should not exit cleanly on unexpected error

## v0.20.7 (2020-01-01)

### Bug Fixes

- Tuples could cause a crash

## v0.20.6 (2020-01-01)

### Features

- Support for JSDoc types, closes #1214, #1437

### Bug Fixes

- Properly resolve type parameters, closes #1438

## v0.20.5 (2020-12-30)

### Bug Fixes

- Functions might not have a parent in global files, closes #1436

## v0.20.4 (2020-12-30)

### Bug Fixes

- --excludeNotDocumented didn't remove reflections, closes #1435

## v0.20.3 (2020-12-29)

### Features

- Improved support for global files, closes #1424

## v0.20.2 (2020-12-29)

### Features

- Better detection for declaration files defining a module

### Bug Fixes

- Negative literal types were converted incorrectly, closes #1427
- ArgumentsReader should warn if missing a value, closes #1429
- TS 3 converters for null, this types
- Literal boolean converter in TS 3
- Map bash, sh, shell to shellscript when highlighting, closes #1432

## v0.20.1 (2020-12-29)

### Bug Fixes

- Initializers should only be included if "simple", closes #1288, #1224, #764

## v0.20.0 (2020-12-28)

### Breaking Changes

- Remove EVENT_FUNCTION_IMPLEMENTATION
- Switch to Shiki for syntax highlighting
- Unify several inconsistent methods, closes #1403
- Remove EVENT_FILE_BEGIN
- TypeDoc no longer accepts TS options
- Remove "mode" option
- Remove ignoreCompilerErrors option

### Features

- new option "markedOptions" (#1412)
- Initial attempt at support for project references
- Colors in console output
- Options may specify a validation function (#1398)
- Support for `@module` tag
- Support for TS 4.1 mapped types + string literal types, closes #1397
- Add logLevel option
- Partial support for global files
- Automatically generate schema for typedoc.json
- Switch back to search.js, closes #1339
- Support for the remaining literal types
- Support for mapped types
- Mostly working library mode

### Bug Fixes

- ConstructorType node support
- Reintroduce support for index signatures
- Categorization was broken with a single entry point
- Normalize unions, closes #571
- Somehow didn't save a file
- Missing comments on variable functions, closes #1421
- Resolve type parameters in concrete subclasses
- Use entryPoints to search for readme
- Only create extra programs when dealing with solution style tsconfig.json files
- A typo in description of DefaultTheme.getMapping (#1416)
- Correct handling of arrays in generic constraints, closes #1408
- Type converters threw on older TS versions
- Accessor with a set signature was converted incorrectly
- Declaration merged namespaces sometimes produced multiple reflections
- TypeDoc should warn users about missing entry points
- isExternal flag wasn't set properly
- JSON schema had incorrect value types, closes #1389
- Hidden module-namespaces, closes #1396
- Some issues with inheritance
- We pick up all properties now
- Support for specify a directory as an entry point
- Lint
- Array types were converted incorrectly
- Change target back to ES2018
- Missing default exports
- Fix bug in ReferenceType equality check, closes #1383
- fixes #1383, closes #1383
- Reference types should always be given resolved symbols
- Rendering works again
- A few of the issues with the type converter

### Thanks!

- @gamtiq
- @krisztianb
- @socsieng

## v0.19.2 (2020-09-21)

### Bug Fixes

- Export declarations within namespaces weren't detected, closes #1366

## v0.19.1 (2020-09-05)

### Features

- Re-introduce support for TS 3.9, closes #1362

### Thanks!

- @Dergash

## v0.19.0 (2020-08-28)

### Features

- Support for named tuples, closes #1357
- Upgrade to TS 4.0
- Support for defaulted type parameters

### Bug Fixes

- Check for missing declarations, closes #1329
- Add converter for parenthesized type nodes, closes #1346
- Support for type operators `readonly` & `unique`
- Address typo in log statement

### Thanks!

- @ericzhangjx
- @krisztianb
- @MathBunny

## v0.18.0 (2020-08-09)

### Breaking Changes

- Bump minimum node version to 10

### Bug Fixes

- Improve support for type aliases, closes #1330
- Examples don't run (#1327)
- Use `baseUrl` to determine file paths (#1313), closes #1294
- Support resolveJsonModule, closes #1323
- Do not ignore the properties of object type literals (#1308)
- GithubPlugin: read correct remote when multiple github repos exist
- Only set inputFiles from tsconfig if not already set, closes #1263
- Options.isDefault was always false when passed non-literals., closes #1263

### Thanks!

- @brandones
- @christopherthielen
- @canonic-epicure
- @TheBrokenRail

## v0.17.7 (2020-05-17)

### Breaking Changes

- Any plugins which referenced ReflectionKind.ExternalModule or ReflectionKind.Module need to be updated to reference ReflectionKind.Module and ReflectionKind.Namespace respectively., closes #109
- `createMinimatch` is no longer a public function.

### Features

- Allow every possible number as a defaultValue for a number option (#1296), closes #1291
- Number options may require min and max values (#1278)
- Add detecting read-only properties (#1268)
- Remove Result object, closes #1238
- Generate search index before rendering theme (#1252)
- Support for `@template`, closes #860
- Support for private fields
- Move TypeScript to a peer dependency, closes #880
- Support disabling sources, closes #808
- Allow user to set git remote, closes #1130
- Only generate legend for items that are displayed on the page (#1187), closes #1136

### Bug Fixes

- copy inherited parameter descriptions (#1303), closes #787
- TypeDoc fails to resolve @types packages outside of cwd, closes #1300
- Trim whitespace when parsing links, closes #1302
- Module declaration parsed as namespace (#1301), closes #1284
- Correct prepublish script
- Do not silently swallow missing include/media file errors (#1277)
- Fix extends option in tsconfig.json doesn't work (#1273), closes #1272
- Improve output for object's computed property names (#1275)
- Enable lax overloads only in release
- Map type options should not have their default value validated (#1250)
- Empty legend on most pages
- Pin marked to 0.8.0, closes #1240
- Report errors from setting bad options on CLI, closes #1237
- Missed a test configuration update
- Rename external modules to modules, closes #109
- Check for compiler errors before converting
- Moved @types/minimatch dependency to devDependencies (#1206)
- Plugin resolution for relative paths (#1194), closes #1188

### Thanks!

- @alexandercerutti
- @krisztianb
- @Unnvaldr
- @canonic-epicure
- @garaboncias
- @sgrishchenko
- @socsieng
- @StephanBijzitter
- @WilliamJns

## v0.16.11 (2020-02-28)

### Features

- Add support for `` inside of Marked Link Brackets (#1091)
- Support for extended config in typedoc.json, closes #493, #1115
- Config option to exclude not explicitly documented symbols (#996), closes #995

### Bug Fixes

- Support code blocks with four spaces, closes #1218
- Ensure child comment tags get set (#1221)
- Re-export TypeScript namespace (#1217), closes #1213
- Logger extensions now also count the warnings (#1210)

### Thanks!

- @epzilla
- @forivall
- @KSXGitHub
- @canonic-epicure
- @Richienb
- @PissedCapslock

## v0.16.10 (2020-02-16)

### Features

- Allow excluding tags from comments, closes #815
- Count warnings (#1205)

### Bug Fixes

- Remove tags containing redundant type info, closes #1198
- Don't remove braces containing a tag, closes #1001
- Mixin symbols might not have declarations (#1208)

### Thanks!

- @capraynor
- @PissedCapslock
- @zslayton

## v0.16.9 (2020-01-25)

### Bug Fixes

- use util.readFile everywhere to handle BOM issues

### Thanks!

- @antongolub

## v0.16.8 (2020-01-21)

### Bug Fixes

- Correctly handle export \* from..., closes #1186

## v0.16.7 (2020-01-17)

### Features

- Support for query types

### Bug Fixes

- Add test for {} and fix generation

### Thanks!

- @PissedCapslock

## v0.16.6 (2020-01-16)

### Bug Fixes

- removeReflection does not fully remove reflections, closes #1176


================================================
FILE: LICENSE
================================================
Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "{}"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright {yyyy} {name of copyright owner}

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

================================================
FILE: README.md
================================================
# TypeDoc

Documentation generator for TypeScript projects.

## Documentation

For more detailed documentation, the changelog, and TypeDoc documentation rendered with TypeDoc, see https://typedoc.org.

## Installation

TypeDoc runs on Node.js and is available as a NPM package.

```text
npm install typedoc --save-dev
```

## Usage

To generate documentation TypeDoc needs to know your project entry point and TypeScript
compiler options. It will automatically try to find your `tsconfig.json` file, so you can
just specify the entry point of your library:

```text
typedoc src/index.ts
```

If you have multiple entry points, specify each of them.

```text
typedoc package1/index.ts package2/index.ts
```

If you specify a directory, TypeDoc will use the `entryPointStrategy` option to determine how to resolve it.
By default, TypeDoc will search for a file called `index` under the directory.

### Monorepos / Workspaces

If your codebase is comprised of one or more npm packages, you can build documentation for each of them individually
and merge the results together into a single site by setting `entryPointStrategy` to `packages`. In this mode TypeDoc
requires configuration to be present in each directory to specify the entry points. For an example setup, see
https://github.com/Gerrit0/typedoc-packages-example

### Arguments

For a complete list of the command line arguments run `typedoc --help` or visit
[our website](https://typedoc.org/options/).

- `--out <path/to/documentation/>`<br>
  Specifies the location the documentation should be written to. Defaults to `./docs`
- `--json <path/to/output.json>`<br>
  Specifies the location and file name a json file describing the project is
  written to. When specified no documentation will be generated unless `--out` is also
  specified.
- `--options`<br>
  Specify a json option file that should be loaded. If not specified TypeDoc
  will look for 'typedoc.json' in the current directory.
- `--tsconfig <path/to/tsconfig.json>`<br>
  Specify a typescript config file that should be loaded. If not
  specified TypeDoc will look for 'tsconfig.json' in the current directory.
- `--exclude <pattern>`<br>
  Exclude files by the given pattern when a path is provided as source.
  Supports standard minimatch patterns.

#### Theming

- `--theme <default|plugin defined theme>`<br>
  Specify the theme that should be used.
- `--name <Documentation title>`<br>
  Set the name of the project that will be used in the header of the template.
- `--readme <path/to/readme|none>`<br>
  Path to the readme file that should be displayed on the index page. Pass `none` to disable the index page
  and start the documentation on the globals page.

#### Miscellaneous

- `--version`<br>
  Display the version number of TypeDoc.
- `--help`<br>
  Display all TypeDoc options.

## Contributing

This project is maintained by a community of developers. Contributions are welcome and appreciated.
You can find TypeDoc on GitHub; feel free to open an issue or create a pull request:
https://github.com/TypeStrong/typedoc

For more information, read the [contribution guide](https://github.com/TypeStrong/typedoc/blob/master/.github/CONTRIBUTING.md).


================================================
FILE: bin/package.json
================================================
{
    "type": "commonjs"
}


================================================
FILE: bin/typedoc
================================================
#!/usr/bin/env node
//@ts-check

const { fork } = require("child_process");

function main() {
    fork(__dirname + "/../dist/lib/cli.js", process.argv.slice(2), {
        stdio: "inherit",
    }).on("exit", (code) => {
        // Watch restart required? Fork a new child
        if (code === 7) {
            // Set an environment variable to ensure we continue watching
            // Otherwise, the watch might stop unexpectedly if the watch
            // option was set in a config file originally, and change to false
            // later, causing a restart
            process.env["TYPEDOC_FORCE_WATCH"] = "1";
            main();
        } else {
            process.exit(code || 0);
        }
    });
}

main();


================================================
FILE: dprint.json
================================================
{
    "indentWidth": 4,
    "typescript": {
        "module.sortImportDeclarations": "maintain",
        "operatorPosition": "sameLine",
        "quoteStyle": "preferDouble",
        "conditionalExpression.operatorPosition": "nextLine",
        "forStatement.bracePosition": "sameLine",
        "constructorType.spaceAfterNewKeyword": true,
        "constructSignature.spaceAfterNewKeyword": true,
        "functionExpression.spaceAfterFunctionKeyword": true
    },
    "json": {},
    "markdown": {},
    "excludes": [
        "**/node_modules",
        "**/*-lock.json",
        "src/test/converter2/issues/gh1524.d.ts",
        "src/test/converter2/issues/gh2631/crlf.md"
    ],
    "plugins": [
        "https://plugins.dprint.dev/typescript-0.95.15.wasm",
        "https://plugins.dprint.dev/json-0.21.1.wasm",
        "https://plugins.dprint.dev/markdown-0.21.1.wasm",
        "https://plugins.dprint.dev/g-plane/malva-v0.15.2.wasm"
    ]
}


================================================
FILE: eslint.config.mjs
================================================
// @ts-check
import eslint from "@eslint/js";
import tslint from "typescript-eslint";

/** @type {import("typescript-eslint").ConfigWithExtends} */
const config = {
    languageOptions: {
        parserOptions: {
            project: true,
            tsconfigRootDir: import.meta.dirname,
            // We're fairly frequently on a later version of the TS compiler than
            // is officially supported. So far this has never been a real problem.
            warnOnUnsupportedTypeScriptVersion: false,
        },
    },
    rules: {
        "@typescript-eslint/no-floating-promises": "error",
        "@typescript-eslint/await-thenable": "error",
        "@typescript-eslint/consistent-type-imports": [
            "error",
            {
                fixStyle: "inline-type-imports",
                prefer: "type-imports",
                disallowTypeAnnotations: false,
            },
        ],

        "@typescript-eslint/restrict-template-expressions": [
            "error",
            {
                allowBoolean: true,
                allowNumber: true,
            },
        ],

        // This one is just annoying since it complains at incomplete code
        "no-empty": "off",

        // Doesn't properly handle intersections of generics.
        "@typescript-eslint/unified-signatures": "off",

        // This rule is factually incorrect. Interfaces which extend some type alias can be used to introduce
        // new type names. This is useful particularly when dealing with mixins.
        "@typescript-eslint/no-empty-interface": "off",

        // Conflicts with TS option to require dynamic access for records, which I find more useful.
        "@typescript-eslint/no-dynamic-delete": "off",

        // Conflicts with the `NeverIfInternal` type used to enforce a stricter API internally
        "@typescript-eslint/no-redundant-type-constituents": "off",
        "@typescript-eslint/no-unnecessary-boolean-literal-compare": "off",

        // This is sometimes useful for clarity
        "@typescript-eslint/no-unnecessary-type-arguments": "off",

        // It'd be kind of nice to be able to turn this on, but it doesn't seem to be worth the additional
        // pain at this point. Turning it on adds ~300 lint errors, of which manual review found 1 bug, and
        // whose suggestions would have introduced 3 bugs that I noticed, and potentially more... and it
        // also didn't catch the bug which I originally turned it on for! Ideally, I'd like a version of
        // this which ONLY checks for boolean comparisons of type number.
        "@typescript-eslint/strict-boolean-expressions": "off",

        // We still use `any` fairly frequently...
        "@typescript-eslint/ban-types": "off",
        "@typescript-eslint/no-explicit-any": "off",
        "@typescript-eslint/no-unsafe-assignment": "off",
        "@typescript-eslint/no-unsafe-argument": "off",
        "@typescript-eslint/no-unsafe-return": "off",
        "@typescript-eslint/no-unsafe-member-access": "off",
        "@typescript-eslint/no-unsafe-call": "off",
        "@typescript-eslint/no-empty-object-type": "off",

        // Needed for the locales today, don't want to make every contributor to those turn it off.
        "@typescript-eslint/no-require-imports": [
            "error",
            {
                allow: ["/[^/]+\\.cjs"],
            },
        ],

        // Really annoying, doesn't provide any value.
        "@typescript-eslint/no-empty-function": "off",

        // Declaration merging with a namespace is a necessary tool when working with enums.
        "@typescript-eslint/no-namespace": "off",

        // Reported by TypeScript
        "@typescript-eslint/no-unused-vars": "off",

        "no-console": "warn",

        "@typescript-eslint/no-confusing-void-expression": "off",
        "@typescript-eslint/unbound-method": "off",

        "@typescript-eslint/prefer-literal-enum-member": [
            "error",
            { allowBitwiseExpressions: true },
        ],

        // I'd like to have this turned on, but haven't figured out how to tell it about
        // checks that are correctly linted as unnecessary for TypeDoc's usage, but not
        // for plugin permitted usage.
        "@typescript-eslint/no-unnecessary-condition": "off",

        // Feel free to turn one of these back on and submit a PR!
        "@typescript-eslint/no-non-null-assertion": "off",
        "@typescript-eslint/explicit-module-boundary-types": "off",

        // https://astexplorer.net/#/gist/82d22728cda8283bf38e956640420af4/4d5e6fbcbceed981f9897a859322ade5f1cb86ee
        "no-restricted-syntax": [
            "warn",
            {
                selector: "ImportDeclaration[source.value=/.*perf(\\.[tj]s)?$/]",
                message: "Benchmark calls must be removed before committing.",
            },
            {
                selector: "MemberExpression[object.name=type][property.name=symbol]",
                message: "Use type.getSymbol() instead, Type.symbol is not properly typed.",
            },
            {
                selector: "ImportDeclaration[source.value=typescript] ImportNamespaceSpecifier",
                message: "TS before 5.7 does not have non-default exports.",
            },
            {
                selector: "ImportDeclaration[source.value=typescript] ImportDeclaration",
                message: "TS before 5.7 does not have non-default exports.",
            },
        ],

        "no-fallthrough": ["error", { allowEmptyCase: true }],
    },
};

const nodeModules = [
    "assert",
    "assert/strict",
    "async_hooks",
    "buffer",
    "child_process",
    "cluster",
    "console",
    "constants",
    "crypto",
    "dgram",
    "diagnostics_channel",
    "dns",
    "dns/promises",
    "domain",
    "events",
    "fs",
    "fs/promises",
    "http",
    "http2",
    "https",
    "inspector",
    "inspector/promises",
    "module",
    "net",
    "os",
    "path",
    "path/posix",
    "path/win32",
    "perf_hooks",
    "process",
    "punycode",
    "querystring",
    "readline",
    "readline/promises",
    "repl",
    "stream",
    "stream/consumers",
    "stream/promises",
    "stream/web",
    "string_decoder",
    "sys",
    "timers",
    "timers/promises",
    "tls",
    "trace_events",
    "tty",
    "url",
    "util",
    "util/types",
    "v8",
    "vm",
    "wasi",
    "worker_threads",
    "zlib",
];

export default tslint.config(
    {
        files: ["src/**/*.ts"],
        rules: {
            "no-restricted-imports": [
                "error",
                {
                    patterns: ["*/utils-common/*"],
                },
            ],
        },
    },
    {
        files: ["src/lib/models/**/*.ts"],
        rules: {
            "no-restricted-imports": [
                "error",
                {
                    paths: nodeModules,
                    patterns: [{
                        regex: "^(?!\./|#utils|#serialization).*",
                        message: "models may only import within this directory or #utils/#serialization",
                    }],
                },
            ],
        },
    },
    {
        files: ["src/lib/serialization/**/*.ts"],
        rules: {
            "no-restricted-imports": [
                "error",
                {
                    paths: nodeModules,
                    patterns: [
                        "node:*",
                        "\\#*",
                        "!\\#utils",
                        "!\\#models",
                        "../*",
                    ],
                },
            ],
        },
    },
    {
        files: ["src/lib/utils-common/**/*.ts"],
        rules: {
            "no-restricted-imports": [
                "error",
                {
                    paths: nodeModules,
                    patterns: [{
                        regex: "^(?!\./).*",
                        message: "utils-common may only import within this directory",
                    }],
                },
            ],
        },
    },
    eslint.configs.recommended,
    ...tslint.configs.strictTypeChecked,
    config,
    {
        files: ["src/test/**/*"],
        rules: {
            "@typescript-eslint/no-deprecated": "off",
        },
    },
    {
        ignores: [
            "eslint.config.mjs",
            "src/test/renderer/specs",
            "site/typedoc-plugin-redirect.js",
            "site/site-plugin.js",
            "dist",
            "docs",
            "docs2",
            "docs-site",
            "tmp",
            "coverage",
            "static/main.js",
            "src/lib/output/themes/default/assets",
            "**/node_modules",
            "example",
            "src/test/converter",
            "src/test/converter2",
            "src/test/module",
            "src/test/packages",
            "src/test/renderer/",
            "src/test/slow/entry-points",
            "scripts",
            "bin",
        ],
    },
);


================================================
FILE: example/.eslintrc.json
================================================
{
    "extends": "../.eslintrc",
    "parserOptions": {
        "project": "./tsconfig.json"
    },
    "ignorePatterns": ["docs/"]
}


================================================
FILE: example/README.md
================================================
# The TypeDoc Example

Welcome to the TypeDoc example! TypeDoc is a documentation generator for
TypeScript.

TypeDoc automatically documents every variable, function, and class
that is exported by your project. You can add explanations and examples to your
documentation site by annotating your code with doc comments, e.g.

```
/**
 * Calculates the square root of a number.
 *
 * @param x the number to calculate the root of.
 * @returns the square root if `x` is non-negative or `NaN` if `x` is negative.
 */
export function sqrt(x: number): number {
    return Math.sqrt(x);
}
```

This project shows off some of TypeDoc's features:

- Built-in support for various TypeScript language constructs
- Markdown in doc comments
- Syntax highlighting in code blocks

## Index of Examples

**Click the "Exports" link in the sidebar to see a complete list of everything in
the package.**

Here are some examples we wanted to highlight:

### Rendering

- External Markdown: [here](./src/documents/external-markdown.md)
- Markdown showcase: [here](./src/documents/markdown.md)
- Syntax highlighting showcase: [here](./src/documents/syntax-highlighting.md)

### Functions

- Simple functions: {@link sqrt | `sqrt` } and {@link sqrtArrowFunction | `sqrtArrowFunction` }
- A generic function: {@link concat | `concat` }
- Functions that take an options object: {@link makeHttpCallA | `makeHttpCallA` } and {@link makeHttpCallB | `makeHttpCallB` }
- An overloaded function: {@link overloadedFunction | `overloadedFunction` }
- An external function exported under a different name: {@link lodashSortBy | `lodashSortBy` }

### Types

- Type aliases: {@link SimpleTypeAlias | `SimpleTypeAlias` } and {@link ComplexGenericTypeAlias | `ComplexGenericTypeAlias` }
- Interfaces: {@link User | `User` } and {@link AdminUser | `AdminUser` }

### Classes

- A basic class: {@link Customer | `Customer` }
- A subclass: {@link DeliveryCustomer | `DeliveryCustomer` }
- A complex class: {@link CancellablePromise | `CancellablePromise` }
- A class that extends a built-in generic type: {@link StringArray | `StringArray` }

### Enums

- A basic enum: {@link SimpleEnum | `SimpleEnum` }
- Using the `@enum` tag: {@link EnumLikeObject | `EnumLikeObject` }

### Variables

- {@link PI | `PI` }, {@link STRING_CONSTANT | `STRING_CONSTANT` }, and {@link ObjectConstant | `ObjectConstant` }

### React Components

- Basic React components: {@link CardA | `CardA` } and {@link CardB | `CardB` }
- A complex React component: {@link EasyFormDialog | `EasyFormDialog` } and {@link EasyFormDialogProps | `EasyFormDialogProps` }


================================================
FILE: example/building-the-example.md
================================================
# Building the TypeDoc Example

1. Build TypeDoc: `pnpm install` and `pnpm build` in the root directory.
2. `cd example`
3. `pnpm install` (the example has its own `package.json`)
4. Typecheck the example: `pnpm tsc`
5. Build the docs: `pnpm typedoc`


================================================
FILE: example/package.json
================================================
{
    "name": "typedoc-example",
    "version": "0.0.0",
    "private": true,
    "description": "An example of using the TypeDoc documentation generator.",
    "license": "Apache-2.0",
    "author": "TypeDoc contributors",
    "scripts": {
        "lint": "eslint .",
        "tsc": "tsc",
        "typedoc": "node ../bin/typedoc"
    },
    "dependencies": {
        "@types/lodash": "^4.17.23",
        "@types/react": "^19.2.14",
        "@types/react-dom": "^19.2.3",
        "lodash": "^4.17.23",
        "react": "^19.2.4",
        "react-dom": "^19.2.4"
    },
    "devDependencies": {
        "typescript": "^5.9.3"
    }
}


================================================
FILE: example/src/classes/CancellablePromise.ts
================================================
const noop = () => {
    /* purposefully empty */
};

/**
 * If canceled, a {@link CancellablePromise | `CancellablePromise`} should throw an `Cancellation` object.
 */
class Cancellation extends Error {
    constructor(message = "Promise canceled.") {
        super(message);
    }
}

/**
 * The most abstract thing we can cancel — a thenable with a cancel method.
 */
type PromiseWithCancel<T> = PromiseLike<T> & { cancel(): void };

/**
 * Determines if an arbitrary value is a thenable with a cancel method.
 */
function isPromiseWithCancel<T>(value: unknown): value is PromiseWithCancel<T> {
    return (
        typeof value === "object" &&
        typeof (value as any).then === "function" &&
        typeof (value as any).cancel === "function"
    );
}

/**
 * This example shows off how TypeDoc handles
 *
 * - Complex method signatures
 * - Static methods
 * - A method with 10 overload signatures. Wow!
 *     - Only the implementation signature has a doc comment. TypeDoc
 *       automatically copies the comment from the implementation signature to
 *       each of the visible signatures if they don't have one.
 *
 * A promise with a `cancel` method.  If canceled, the `CancellablePromise` will
 * reject with a `Cancellation` object. Originally from
 * [real-cancellable-promise](https://github.com/srmagura/real-cancellable-promise).
 *
 * @typeParam T what the `CancellablePromise` resolves to
 *
 * @groupDescription Methods
 * Descriptions can be added for groups with `@groupDescription`, which will show up in
 * the index where groups are listed. This works for both manually created groups which
 * are created with `@group`, and implicit groups like the `Methods` group that this
 * description is attached to.
 */
export class CancellablePromise<T> {
    /**
     * As a consumer of the library, you shouldn't ever need to access
     * `CancellablePromise.promise` directly.
     *
     * If you are subclassing `CancellablePromise` for some reason, you
     * can access this property.
     */
    protected readonly promise: Promise<T>;

    // IMPORTANT: When defining a new `cancel` function,
    // e.g. in the implementation of `then`,
    // always use an arrow function so that `this` is bound.

    /**
     * Cancel the `CancellablePromise`.
     */
    readonly cancel: (reason?: string) => void;

    /**
     * @param promise a normal promise or thenable
     * @param cancel a function that cancels `promise`. **Calling `cancel` after
     * `promise` has resolved must be a no-op.**
     */
    constructor(promise: PromiseLike<T>, cancel: (reason?: string) => void) {
        this.promise = Promise.resolve(promise);
        this.cancel = cancel;
    }

    /**
     * Analogous to `Promise.then`.
     *
     * `onFulfilled` on `onRejected` can return a value, a normal promise, or a
     * `CancellablePromise`. So you can make a chain a `CancellablePromise`s
     * like this:
     *
     * ```
     * const overallPromise = cancellableAsyncFunction1()
     *     .then(cancellableAsyncFunction2)
     *     .then(cancellableAsyncFunction3)
     *     .then(cancellableAsyncFunction4)
     * ```
     *
     * Then if you call `overallPromise.cancel`, `cancel` is called on all
     * `CancellablePromise`s in the chain! In practice, this means that
     * whichever async operation is in progress will be canceled.
     *
     * @returns a new CancellablePromise
     */
    then<TResult1 = T, TResult2 = never>(
        onFulfilled?:
            | ((value: T) => TResult1 | PromiseLike<TResult1>)
            | undefined
            | null,
        onRejected?:
            | ((reason: any) => TResult2 | PromiseLike<TResult2>)
            | undefined
            | null,
    ): CancellablePromise<TResult1 | TResult2> {
        let fulfill;
        let reject;
        let callbackPromiseWithCancel: PromiseWithCancel<unknown> | undefined;

        if (onFulfilled) {
            fulfill = (value: T): TResult1 | PromiseLike<TResult1> => {
                const nextValue: TResult1 | PromiseLike<TResult1> = onFulfilled(value);

                if (isPromiseWithCancel(nextValue)) {
                    callbackPromiseWithCancel = nextValue;
                }

                return nextValue;
            };
        }

        if (onRejected) {
            reject = (reason: any): TResult2 | PromiseLike<TResult2> => {
                const nextValue: TResult2 | PromiseLike<TResult2> = onRejected(reason);

                if (isPromiseWithCancel(nextValue)) {
                    callbackPromiseWithCancel = nextValue;
                }

                return nextValue;
            };
        }

        const newPromise = this.promise.then(fulfill, reject);

        const newCancel = () => {
            this.cancel();
            callbackPromiseWithCancel?.cancel();
        };

        return new CancellablePromise(newPromise, newCancel);
    }

    /**
     * Analogous to `Promise.catch`.
     */
    catch<TResult = never>(
        onRejected?:
            | ((reason: any) => TResult | PromiseLike<TResult>)
            | undefined
            | null,
    ): CancellablePromise<T | TResult> {
        return this.then(undefined, onRejected);
    }

    /**
     * Attaches a callback that is invoked when the Promise is settled
     * (fulfilled or rejected). The resolved value cannot be modified from the
     * callback.
     * @param onFinally The callback to execute when the Promise is settled
     * (fulfilled or rejected).
     * @returns A Promise for the completion of the callback.
     */
    finally(
        onFinally?: (() => void) | undefined | null,
    ): CancellablePromise<T> {
        return new CancellablePromise(
            this.promise.finally(onFinally),
            this.cancel,
        );
    }

    /**
     * Analogous to `Promise.resolve`.
     *
     * The returned promise should resolve even if it is canceled. The idea is
     * that the promise is resolve
Download .txt
gitextract_ygk5af18/

├── .config/
│   ├── mocha.fast.json
│   ├── mocha.full.json
│   ├── mocha.test-explorer.json
│   ├── regconfig.json
│   └── typedoc.json
├── .editorconfig
├── .gitattributes
├── .github/
│   ├── CODE_OF_CONDUCT.md
│   ├── CONTRIBUTING.md
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── config.yml
│   │   └── feature_request.md
│   ├── SECURITY.md
│   └── workflows/
│       ├── build-site.yml
│       ├── ci.yml
│       ├── publish-beta.yml
│       ├── publish-lts.yml
│       └── publish.yml
├── .gitignore
├── .npmrc
├── .vscode/
│   ├── extensions.json
│   ├── launch.json
│   ├── settings.json
│   └── tasks.json
├── CHANGELOG.md
├── LICENSE
├── README.md
├── bin/
│   ├── package.json
│   └── typedoc
├── dprint.json
├── eslint.config.mjs
├── example/
│   ├── .eslintrc.json
│   ├── README.md
│   ├── building-the-example.md
│   ├── package.json
│   ├── src/
│   │   ├── classes/
│   │   │   ├── CancellablePromise.ts
│   │   │   ├── Customer.ts
│   │   │   ├── StringArray.ts
│   │   │   └── index.ts
│   │   ├── documents/
│   │   │   ├── external-markdown.md
│   │   │   ├── include-code.md
│   │   │   ├── include.md
│   │   │   ├── markdown.md
│   │   │   └── syntax-highlighting.md
│   │   ├── enums.ts
│   │   ├── functions.ts
│   │   ├── index.ts
│   │   ├── internals.ts
│   │   ├── reactComponents.tsx
│   │   ├── reexports.ts
│   │   ├── types.ts
│   │   └── variables.ts
│   ├── tsconfig.json
│   └── typedoc.json
├── package.json
├── scripts/
│   ├── build_browser_translations.js
│   ├── build_site.sh
│   ├── build_themes.js
│   ├── capture_screenshots.mjs
│   ├── clone_api_users.js
│   ├── create_release.js
│   ├── data/
│   │   └── api_users.js
│   ├── download_plugins.cjs
│   ├── generate_options_schema.js
│   ├── generate_site_plugins.js
│   ├── prepare.mjs
│   ├── rebuild_specs.js
│   ├── set_strict.js
│   ├── sync_i18n.js
│   ├── testcase.js
│   └── visual_regression.js
├── site/
│   ├── custom.css
│   ├── declaration-references.md
│   ├── development/
│   │   ├── index.md
│   │   ├── internationalization.md
│   │   ├── local-storage.md
│   │   ├── plugins.md
│   │   ├── themes.md
│   │   └── third-party-symbols.md
│   ├── doc-comments/
│   │   ├── index.md
│   │   ├── jsdoc-support.md
│   │   └── tsdoc-support.md
│   ├── external-documents.md
│   ├── generated/
│   │   └── .gitignore
│   ├── googlede482cdb17c37ad4.html
│   ├── index.md
│   ├── options/
│   │   ├── comments.md
│   │   ├── configuration.md
│   │   ├── input.md
│   │   ├── organization.md
│   │   ├── other.md
│   │   ├── output.md
│   │   ├── package-options.md
│   │   └── validation.md
│   ├── options.md
│   ├── overview.md
│   ├── plugins.md
│   ├── site-plugin.js
│   ├── tags/
│   │   ├── abstract.md
│   │   ├── alpha.md
│   │   ├── author.md
│   │   ├── beta.md
│   │   ├── category.md
│   │   ├── class.md
│   │   ├── defaultValue.md
│   │   ├── deprecated.md
│   │   ├── document.md
│   │   ├── enum.md
│   │   ├── event.md
│   │   ├── eventProperty.md
│   │   ├── example.md
│   │   ├── expand.md
│   │   ├── experimental.md
│   │   ├── function.md
│   │   ├── group.md
│   │   ├── hidden.md
│   │   ├── hideconstructor.md
│   │   ├── ignore.md
│   │   ├── import.md
│   │   ├── include.md
│   │   ├── inheritDoc.md
│   │   ├── inline.md
│   │   ├── interface.md
│   │   ├── internal.md
│   │   ├── label.md
│   │   ├── license.md
│   │   ├── link.md
│   │   ├── mergeModuleWith.md
│   │   ├── module.md
│   │   ├── namespace.md
│   │   ├── overload.md
│   │   ├── override.md
│   │   ├── packageDocumentation.md
│   │   ├── param.md
│   │   ├── primaryExport.md
│   │   ├── private.md
│   │   ├── privateRemarks.md
│   │   ├── property.md
│   │   ├── protected.md
│   │   ├── public.md
│   │   ├── readonly.md
│   │   ├── remarks.md
│   │   ├── returns.md
│   │   ├── sealed.md
│   │   ├── see.md
│   │   ├── since.md
│   │   ├── sortStrategy.md
│   │   ├── summary.md
│   │   ├── template.md
│   │   ├── throws.md
│   │   ├── typeParam.md
│   │   ├── typescript.md
│   │   ├── useDeclaredType.md
│   │   └── virtual.md
│   ├── tags.md
│   ├── themes.md
│   ├── typedoc-plugin-redirect.js
│   └── typedoc.config.jsonc
├── src/
│   ├── browser-utils.ts
│   ├── index.ts
│   ├── lib/
│   │   ├── application-events.ts
│   │   ├── application.ts
│   │   ├── cli.ts
│   │   ├── converter/
│   │   │   ├── comments/
│   │   │   │   ├── blockLexer.ts
│   │   │   │   ├── declarationReferenceResolver.ts
│   │   │   │   ├── discovery.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── lexer.ts
│   │   │   │   ├── lineLexer.ts
│   │   │   │   ├── linkResolver.ts
│   │   │   │   ├── parser.ts
│   │   │   │   ├── rawLexer.ts
│   │   │   │   ├── tagName.ts
│   │   │   │   └── textParser.ts
│   │   │   ├── components.ts
│   │   │   ├── context.ts
│   │   │   ├── convert-expression.ts
│   │   │   ├── converter-events.ts
│   │   │   ├── converter.ts
│   │   │   ├── factories/
│   │   │   │   ├── index-signature.ts
│   │   │   │   ├── signature.ts
│   │   │   │   └── symbol-id.ts
│   │   │   ├── index.ts
│   │   │   ├── jsdoc.ts
│   │   │   ├── plugins/
│   │   │   │   ├── CategoryPlugin.ts
│   │   │   │   ├── CommentPlugin.ts
│   │   │   │   ├── GroupPlugin.ts
│   │   │   │   ├── ImplementsPlugin.ts
│   │   │   │   ├── IncludePlugin.ts
│   │   │   │   ├── InheritDocPlugin.ts
│   │   │   │   ├── LinkResolverPlugin.ts
│   │   │   │   ├── MergeModuleWithPlugin.ts
│   │   │   │   ├── PackagePlugin.ts
│   │   │   │   ├── SourcePlugin.ts
│   │   │   │   ├── TypePlugin.ts
│   │   │   │   └── index.ts
│   │   │   ├── symbols.ts
│   │   │   ├── types.ts
│   │   │   └── utils/
│   │   │       ├── nodes.ts
│   │   │       ├── reflections.ts
│   │   │       ├── repository.ts
│   │   │       └── symbols.ts
│   │   ├── debug/
│   │   │   ├── index.ts
│   │   │   ├── reflectionLifetimes.ts
│   │   │   └── rendererUrls.ts
│   │   ├── internationalization/
│   │   │   ├── index.ts
│   │   │   ├── internationalization.ts
│   │   │   ├── locale-utils.cts
│   │   │   ├── locales/
│   │   │   │   ├── de.cts
│   │   │   │   ├── en.cts
│   │   │   │   ├── ja.cts
│   │   │   │   ├── ko.cts
│   │   │   │   └── zh.cts
│   │   │   └── translatable.ts
│   │   ├── models/
│   │   │   ├── Comment.ts
│   │   │   ├── ContainerReflection.ts
│   │   │   ├── DeclarationReflection.ts
│   │   │   ├── DocumentReflection.ts
│   │   │   ├── FileRegistry.ts
│   │   │   ├── ParameterReflection.ts
│   │   │   ├── ProjectReflection.ts
│   │   │   ├── ReferenceReflection.ts
│   │   │   ├── Reflection.ts
│   │   │   ├── ReflectionCategory.ts
│   │   │   ├── ReflectionGroup.ts
│   │   │   ├── ReflectionSymbolId.ts
│   │   │   ├── SignatureReflection.ts
│   │   │   ├── SourceReference.ts
│   │   │   ├── TypeParameterReflection.ts
│   │   │   ├── index.ts
│   │   │   ├── kind.ts
│   │   │   ├── types.ts
│   │   │   ├── utils.ts
│   │   │   └── variant.ts
│   │   ├── output/
│   │   │   ├── components.ts
│   │   │   ├── events.ts
│   │   │   ├── formatter.tsx
│   │   │   ├── index.ts
│   │   │   ├── output.ts
│   │   │   ├── plugins/
│   │   │   │   ├── AssetsPlugin.ts
│   │   │   │   ├── HierarchyPlugin.ts
│   │   │   │   ├── IconsPlugin.tsx
│   │   │   │   ├── JavascriptIndexPlugin.ts
│   │   │   │   ├── NavigationPlugin.ts
│   │   │   │   ├── SitemapPlugin.ts
│   │   │   │   └── index.ts
│   │   │   ├── renderer.ts
│   │   │   ├── router.ts
│   │   │   ├── theme.ts
│   │   │   └── themes/
│   │   │       ├── MarkedPlugin.tsx
│   │   │       ├── default/
│   │   │       │   ├── DefaultTheme.tsx
│   │   │       │   ├── DefaultThemeRenderContext.ts
│   │   │       │   ├── Slugger.ts
│   │   │       │   ├── assets/
│   │   │       │   │   ├── bootstrap.ts
│   │   │       │   │   └── typedoc/
│   │   │       │   │       ├── Application.ts
│   │   │       │   │       ├── Component.ts
│   │   │       │   │       ├── EventTarget.ts
│   │   │       │   │       ├── Hierarchy.ts
│   │   │       │   │       ├── Navigation.ts
│   │   │       │   │       ├── Theme.ts
│   │   │       │   │       ├── components/
│   │   │       │   │       │   ├── Accordion.ts
│   │   │       │   │       │   ├── Filter.ts
│   │   │       │   │       │   ├── Search.ts
│   │   │       │   │       │   └── Toggle.ts
│   │   │       │   │       └── utils/
│   │   │       │   │           ├── debounce.ts
│   │   │       │   │           ├── decompress.ts
│   │   │       │   │           ├── modal.ts
│   │   │       │   │           ├── pointer.ts
│   │   │       │   │           ├── storage.ts
│   │   │       │   │           └── throttle.ts
│   │   │       │   ├── layouts/
│   │   │       │   │   └── default.tsx
│   │   │       │   ├── partials/
│   │   │       │   │   ├── anchor-icon.tsx
│   │   │       │   │   ├── breadcrumb.tsx
│   │   │       │   │   ├── comment.tsx
│   │   │       │   │   ├── footer.tsx
│   │   │       │   │   ├── header.tsx
│   │   │       │   │   ├── hierarchy.tsx
│   │   │       │   │   ├── icon.tsx
│   │   │       │   │   ├── index.tsx
│   │   │       │   │   ├── member.declaration.tsx
│   │   │       │   │   ├── member.getterSetter.tsx
│   │   │       │   │   ├── member.signature.body.tsx
│   │   │       │   │   ├── member.signature.title.tsx
│   │   │       │   │   ├── member.signatures.tsx
│   │   │       │   │   ├── member.sources.tsx
│   │   │       │   │   ├── member.tsx
│   │   │       │   │   ├── members.tsx
│   │   │       │   │   ├── moduleReflection.tsx
│   │   │       │   │   ├── navigation.tsx
│   │   │       │   │   ├── reflectionPreview.tsx
│   │   │       │   │   ├── toolbar.tsx
│   │   │       │   │   ├── type.tsx
│   │   │       │   │   ├── typeAndParent.tsx
│   │   │       │   │   ├── typeDetails.tsx
│   │   │       │   │   └── typeParameters.tsx
│   │   │       │   └── templates/
│   │   │       │       ├── document.tsx
│   │   │       │       ├── hierarchy.tsx
│   │   │       │       ├── index.tsx
│   │   │       │       └── reflection.tsx
│   │   │       └── lib.tsx
│   │   ├── serialization/
│   │   │   ├── components.ts
│   │   │   ├── deserializer.ts
│   │   │   ├── events.ts
│   │   │   ├── index.ts
│   │   │   ├── schema.ts
│   │   │   └── serializer.ts
│   │   ├── types/
│   │   │   ├── shiki/
│   │   │   │   └── shiki.d.ts
│   │   │   └── ts-internal/
│   │   │       └── index.d.ts
│   │   ├── utils/
│   │   │   ├── ValidatingFileRegistry.ts
│   │   │   ├── component.ts
│   │   │   ├── compress.ts
│   │   │   ├── declaration-maps.ts
│   │   │   ├── entry-point.ts
│   │   │   ├── fs.ts
│   │   │   ├── general.ts
│   │   │   ├── highlighter.tsx
│   │   │   ├── html-entities.ts
│   │   │   ├── html.ts
│   │   │   ├── index.ts
│   │   │   ├── loggers.ts
│   │   │   ├── options/
│   │   │   │   ├── declaration.ts
│   │   │   │   ├── defaults.ts
│   │   │   │   ├── help.ts
│   │   │   │   ├── index.ts
│   │   │   │   ├── options.ts
│   │   │   │   ├── readers/
│   │   │   │   │   ├── arguments.ts
│   │   │   │   │   ├── index.ts
│   │   │   │   │   ├── package-json.ts
│   │   │   │   │   ├── tsconfig.ts
│   │   │   │   │   └── typedoc.ts
│   │   │   │   ├── sources/
│   │   │   │   │   ├── index.ts
│   │   │   │   │   └── typedoc.ts
│   │   │   │   └── tsdoc-defaults.ts
│   │   │   ├── package-manifest.ts
│   │   │   ├── paths.ts
│   │   │   ├── perf.ts
│   │   │   ├── plugins.ts
│   │   │   ├── reflections.ts
│   │   │   ├── sort.ts
│   │   │   ├── tsconfig.ts
│   │   │   └── tsutils.ts
│   │   ├── utils-common/
│   │   │   ├── array.ts
│   │   │   ├── declarationReference.ts
│   │   │   ├── enum.ts
│   │   │   ├── events.ts
│   │   │   ├── general.ts
│   │   │   ├── hooks.ts
│   │   │   ├── i18n.ts
│   │   │   ├── index.ts
│   │   │   ├── jsx.elements.ts
│   │   │   ├── jsx.ts
│   │   │   ├── logger.ts
│   │   │   ├── map.ts
│   │   │   ├── minimalSourceFile.ts
│   │   │   ├── path.ts
│   │   │   ├── set.ts
│   │   │   ├── string.ts
│   │   │   └── validation.ts
│   │   └── validation/
│   │       ├── documentation.ts
│   │       ├── exports.ts
│   │       ├── links.ts
│   │       └── unusedMergeModuleWith.ts
│   └── test/
│       ├── Repository.test.ts
│       ├── TestLogger.ts
│       ├── behavior.c2.test.ts
│       ├── comments.test.ts
│       ├── converter/
│       │   ├── alias/
│       │   │   ├── alias.ts
│       │   │   └── specs.json
│       │   ├── class/
│       │   │   ├── access.ts
│       │   │   ├── class.ts
│       │   │   ├── constructor-properties.ts
│       │   │   ├── decorators.ts
│       │   │   ├── events-overloads.ts
│       │   │   ├── events.ts
│       │   │   ├── generic-class.ts
│       │   │   ├── getter-setter.ts
│       │   │   ├── specs-with-lump-categories.json
│       │   │   ├── specs.json
│       │   │   └── type-operator.ts
│       │   ├── comment/
│       │   │   ├── comment.ts
│       │   │   ├── comment2.ts
│       │   │   ├── comment3.ts
│       │   │   ├── comment4.ts
│       │   │   ├── document.md
│       │   │   └── specs.json
│       │   ├── declaration/
│       │   │   ├── declaration.d.ts
│       │   │   ├── export-declaration.d.ts
│       │   │   ├── external.d.ts
│       │   │   └── specs.json
│       │   ├── enum/
│       │   │   ├── enum.ts
│       │   │   ├── specs.json
│       │   │   └── specs.nodoc.json
│       │   ├── exports/
│       │   │   ├── export-assignment.ts
│       │   │   ├── export-default.ts
│       │   │   ├── export-with-local.ts
│       │   │   ├── export.ts
│       │   │   ├── mod.ts
│       │   │   ├── no-doc-members.ts
│       │   │   ├── specs.json
│       │   │   ├── specs.nodoc.json
│       │   │   └── test.json
│       │   ├── function/
│       │   │   ├── function.ts
│       │   │   ├── generic-function.ts
│       │   │   ├── implicit-types.ts
│       │   │   └── specs.json
│       │   ├── inherit-param-doc/
│       │   │   ├── inherit-param-doc.ts
│       │   │   └── specs.json
│       │   ├── inheritance/
│       │   │   ├── inherit-doc.ts
│       │   │   ├── mergable-class.ts
│       │   │   └── specs.json
│       │   ├── interface/
│       │   │   ├── constructor-type.ts
│       │   │   ├── index-signature.ts
│       │   │   ├── interface-empty.ts
│       │   │   ├── interface-implementation.ts
│       │   │   ├── merging.ts
│       │   │   └── specs.json
│       │   ├── js/
│       │   │   ├── export-eq-type.js
│       │   │   ├── index.js
│       │   │   └── specs.json
│       │   ├── mixin/
│       │   │   ├── mixin.ts
│       │   │   └── specs.json
│       │   ├── react/
│       │   │   ├── react.tsx
│       │   │   └── specs.json
│       │   ├── tsconfig.json
│       │   ├── types/
│       │   │   ├── general.ts
│       │   │   ├── index-signature.ts
│       │   │   ├── mapped.ts
│       │   │   ├── parens.ts
│       │   │   ├── query.ts
│       │   │   ├── specs.json
│       │   │   ├── tuple.ts
│       │   │   ├── type-operator.ts
│       │   │   └── union-or-intersection.ts
│       │   └── variables/
│       │       ├── array.ts
│       │       ├── destructuring.ts
│       │       ├── literal.ts
│       │       ├── specs.json
│       │       ├── specs.nodoc.json
│       │       └── variable.ts
│       ├── converter.test.ts
│       ├── converter2/
│       │   ├── behavior/
│       │   │   ├── asConstEnum.ts
│       │   │   ├── benchmark.ts
│       │   │   ├── blockComment.ts
│       │   │   ├── cascadedModifiers.ts
│       │   │   ├── categoryInheritance.ts
│       │   │   ├── classTag.ts
│       │   │   ├── constNamespace.ts
│       │   │   ├── constTypeParam.ts
│       │   │   ├── ctorTypeParam.ts
│       │   │   ├── declareGlobal.ts
│       │   │   ├── defaultTag.ts
│       │   │   ├── defaultValueTag.ts
│       │   │   ├── destructuredParamRenames.ts
│       │   │   ├── documents/
│       │   │   │   ├── doc.md
│       │   │   │   ├── docs.ts
│       │   │   │   ├── package.json
│       │   │   │   └── readme.md
│       │   │   ├── duplicateHeritageClauses.ts
│       │   │   ├── exampleTags.ts
│       │   │   ├── excludeCategories.ts
│       │   │   ├── excludeNotDocumentedKinds.ts
│       │   │   ├── exportComments.ts
│       │   │   ├── externalSymbols.ts
│       │   │   ├── groupInheritance.ts
│       │   │   ├── groupTag.ts
│       │   │   ├── hiddenAccessor.ts
│       │   │   ├── hideconstructor.ts
│       │   │   ├── hierarchy.ts
│       │   │   ├── highlightedProperties.ts
│       │   │   ├── includeTag/
│       │   │   │   ├── circularInclude.ts
│       │   │   │   ├── duplicateRegion.ts
│       │   │   │   ├── emptyRegion.ts
│       │   │   │   ├── foldAndRegion.java
│       │   │   │   ├── includeInDoc.md
│       │   │   │   ├── includeTag.md
│       │   │   │   ├── includeTag.ts
│       │   │   │   ├── includeTagDedent.ts
│       │   │   │   ├── includeTagMultipleRegions.ts
│       │   │   │   ├── invalid.extension
│       │   │   │   ├── invalidInclude.ts
│       │   │   │   ├── invalidLineRanges.ts
│       │   │   │   ├── missingRegion.ts
│       │   │   │   └── unsupportedExtension.ts
│       │   │   ├── inferredPredicates.ts
│       │   │   ├── inheritDocBasic.ts
│       │   │   ├── inheritDocJsdoc.ts
│       │   │   ├── inheritDocRecursive.ts
│       │   │   ├── inheritDocSignature.ts
│       │   │   ├── inheritDocWarnings.ts
│       │   │   ├── inlineTag.ts
│       │   │   ├── instantiationExpressions.ts
│       │   │   ├── lineComment.ts
│       │   │   ├── linkResolution.ts
│       │   │   ├── linkResolutionErrors.ts
│       │   │   ├── linkResolutionTs.ts
│       │   │   ├── mergedDeclarations.ts
│       │   │   ├── namedTupleMembers.ts
│       │   │   ├── noInfer.ts
│       │   │   ├── overloadTags.js
│       │   │   ├── overloads.ts
│       │   │   ├── readonlyTag.ts
│       │   │   ├── refusingToRecurse.ts
│       │   │   ├── removeReflection.ts
│       │   │   ├── resolutionMode.ts
│       │   │   ├── router.ts
│       │   │   ├── seeTags.ts
│       │   │   ├── sortStrategyTag.ts
│       │   │   ├── thisType.ts
│       │   │   ├── typeAliasInterface.ts
│       │   │   └── useDeclaredTypeTag.ts
│       │   ├── issues/
│       │   │   ├── gh1124.d.ts
│       │   │   ├── gh1150.ts
│       │   │   ├── gh1164.ts
│       │   │   ├── gh1215.d.ts
│       │   │   ├── gh1255.js
│       │   │   ├── gh1261.ts
│       │   │   ├── gh1330.ts
│       │   │   ├── gh1366.d.ts
│       │   │   ├── gh1408.ts
│       │   │   ├── gh1436.d.ts
│       │   │   ├── gh1449.ts
│       │   │   ├── gh1454.ts
│       │   │   ├── gh1462.ts
│       │   │   ├── gh1481.js
│       │   │   ├── gh1483.js
│       │   │   ├── gh1490.ts
│       │   │   ├── gh1509.ts
│       │   │   ├── gh1514.ts
│       │   │   ├── gh1522.ts
│       │   │   ├── gh1524.d.ts
│       │   │   ├── gh1534.ts
│       │   │   ├── gh1547.ts
│       │   │   ├── gh1552.ts
│       │   │   ├── gh1578/
│       │   │   │   ├── ignored.ts
│       │   │   │   └── index.ts
│       │   │   ├── gh1580.ts
│       │   │   ├── gh1624.ts
│       │   │   ├── gh1626.ts
│       │   │   ├── gh1651.ts
│       │   │   ├── gh1660.ts
│       │   │   ├── gh1733.ts
│       │   │   ├── gh1734.ts
│       │   │   ├── gh1745.ts
│       │   │   ├── gh1770.ts
│       │   │   ├── gh1771.ts
│       │   │   ├── gh1795.ts
│       │   │   ├── gh1804.js
│       │   │   ├── gh1875.ts
│       │   │   ├── gh1876.ts
│       │   │   ├── gh1880.d.ts
│       │   │   ├── gh1896.js
│       │   │   ├── gh1898.ts
│       │   │   ├── gh1903.ts
│       │   │   ├── gh1903b.ts
│       │   │   ├── gh1907/
│       │   │   │   ├── index.ts
│       │   │   │   └── package.json
│       │   │   ├── gh1913.js
│       │   │   ├── gh1927.ts
│       │   │   ├── gh1942.ts
│       │   │   ├── gh1961.ts
│       │   │   ├── gh1962.ts
│       │   │   ├── gh1963.ts
│       │   │   ├── gh1967.ts
│       │   │   ├── gh1968.ts
│       │   │   ├── gh1973/
│       │   │   │   ├── a.ts
│       │   │   │   ├── b.ts
│       │   │   │   └── index.ts
│       │   │   ├── gh1980.ts
│       │   │   ├── gh1986.ts
│       │   │   ├── gh1994.ts
│       │   │   ├── gh1996.ts
│       │   │   ├── gh2008.ts
│       │   │   ├── gh2011.ts
│       │   │   ├── gh2012.ts
│       │   │   ├── gh2019.ts
│       │   │   ├── gh2020.js
│       │   │   ├── gh2031.ts
│       │   │   ├── gh2033.ts
│       │   │   ├── gh2036.ts
│       │   │   ├── gh2042.ts
│       │   │   ├── gh2044/
│       │   │   │   ├── index.js
│       │   │   │   └── other.js
│       │   │   ├── gh2064.ts
│       │   │   ├── gh2079.ts
│       │   │   ├── gh2087.ts
│       │   │   ├── gh2106.ts
│       │   │   ├── gh2135.ts
│       │   │   ├── gh2150/
│       │   │   │   ├── index.ts
│       │   │   │   └── int.ts
│       │   │   ├── gh2156.ts
│       │   │   ├── gh2165.ts
│       │   │   ├── gh2175.ts
│       │   │   ├── gh2200.ts
│       │   │   ├── gh2207/
│       │   │   │   ├── index.ts
│       │   │   │   └── mod.ts
│       │   │   ├── gh2220.ts
│       │   │   ├── gh2222.ts
│       │   │   ├── gh2233.ts
│       │   │   ├── gh2234.ts
│       │   │   ├── gh2270.ts
│       │   │   ├── gh2290.ts
│       │   │   ├── gh2291.ts
│       │   │   ├── gh2296.ts
│       │   │   ├── gh2307.ts
│       │   │   ├── gh2320.ts
│       │   │   ├── gh2336.ts
│       │   │   ├── gh2360.ts
│       │   │   ├── gh2364.ts
│       │   │   ├── gh2372.ts
│       │   │   ├── gh2384.js
│       │   │   ├── gh2389.js
│       │   │   ├── gh2401.d.ts
│       │   │   ├── gh2414.ts
│       │   │   ├── gh2430.js
│       │   │   ├── gh2436.ts
│       │   │   ├── gh2437.ts
│       │   │   ├── gh2438.d.ts
│       │   │   ├── gh2444.ts
│       │   │   ├── gh2451.ts
│       │   │   ├── gh2466.ts
│       │   │   ├── gh2476.ts
│       │   │   ├── gh2478.ts
│       │   │   ├── gh2495.ts
│       │   │   ├── gh2496.ts
│       │   │   ├── gh2502.ts
│       │   │   ├── gh2507.ts
│       │   │   ├── gh2508.ts
│       │   │   ├── gh2509.ts
│       │   │   ├── gh2521.d.ts
│       │   │   ├── gh2524.ts
│       │   │   ├── gh2545.ts
│       │   │   ├── gh2552.js
│       │   │   ├── gh2553.ts
│       │   │   ├── gh2555.ts
│       │   │   ├── gh2574/
│       │   │   │   ├── default.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── notDefault.ts
│       │   │   │   └── reexported.ts
│       │   │   ├── gh2582.ts
│       │   │   ├── gh2585.ts
│       │   │   ├── gh2587.ts
│       │   │   ├── gh2603.ts
│       │   │   ├── gh2611.d.ts
│       │   │   ├── gh2614.ts
│       │   │   ├── gh2631/
│       │   │   │   ├── crlf.md
│       │   │   │   └── index.ts
│       │   │   ├── gh2634.ts
│       │   │   ├── gh2636.ts
│       │   │   ├── gh2638/
│       │   │   │   ├── empty.md
│       │   │   │   └── index.ts
│       │   │   ├── gh2644.ts
│       │   │   ├── gh2683.ts
│       │   │   ├── gh2693.ts
│       │   │   ├── gh2698.ts
│       │   │   ├── gh2700.ts
│       │   │   ├── gh2704.ts
│       │   │   ├── gh2718.ts
│       │   │   ├── gh2719.ts
│       │   │   ├── gh2721.ts
│       │   │   ├── gh2725.ts
│       │   │   ├── gh2755.ts
│       │   │   ├── gh2774/
│       │   │   │   ├── gh2774.ts
│       │   │   │   ├── globalAugment.ts
│       │   │   │   └── moduleAugment.ts
│       │   │   ├── gh2778.ts
│       │   │   ├── gh2779.ts
│       │   │   ├── gh2792.ts
│       │   │   ├── gh2800.ts
│       │   │   ├── gh2802.ts
│       │   │   ├── gh2811.ts
│       │   │   ├── gh2817.ts
│       │   │   ├── gh2820.ts
│       │   │   ├── gh2823.ts
│       │   │   ├── gh2842.ts
│       │   │   ├── gh2844.ts
│       │   │   ├── gh2856.ts
│       │   │   ├── gh2876.ts
│       │   │   ├── gh2881.ts
│       │   │   ├── gh2909.js
│       │   │   ├── gh2914.ts
│       │   │   ├── gh2916.js
│       │   │   ├── gh2917.ts
│       │   │   ├── gh2920.ts
│       │   │   ├── gh2929.js
│       │   │   ├── gh2932.ts
│       │   │   ├── gh2937/
│       │   │   │   ├── index.ts
│       │   │   │   └── not-excluded.ts
│       │   │   ├── gh2949.js
│       │   │   ├── gh2954.ts
│       │   │   ├── gh2962.ts
│       │   │   ├── gh2964.d.ts
│       │   │   ├── gh2970.ts
│       │   │   ├── gh2978.ts
│       │   │   ├── gh2994.d.ts
│       │   │   ├── gh2999.ts
│       │   │   ├── gh3003/
│       │   │   │   ├── enums.ts
│       │   │   │   └── index.ts
│       │   │   ├── gh3006/
│       │   │   │   ├── index.ts
│       │   │   │   └── two words.md
│       │   │   ├── gh3009.ts
│       │   │   ├── gh3012.ts
│       │   │   ├── gh3017.ts
│       │   │   ├── gh3019.ts
│       │   │   ├── gh3020.ts
│       │   │   ├── gh3024.ts
│       │   │   ├── gh3026.js
│       │   │   ├── gh3031.js
│       │   │   ├── gh3050.js
│       │   │   ├── gh3064.ts
│       │   │   ├── gh3070.ts
│       │   │   ├── gh3071.ts
│       │   │   ├── gh567.ts
│       │   │   ├── gh671.js
│       │   │   ├── gh869.ts
│       │   │   └── gh941.ts
│       │   ├── package.json
│       │   ├── renderer/
│       │   │   ├── doc.md
│       │   │   ├── expandType.ts
│       │   │   ├── gh2982.ts
│       │   │   ├── gh2995.ts
│       │   │   ├── gh3007.ts
│       │   │   ├── gh3014.ts
│       │   │   ├── gh3052.ts
│       │   │   ├── index.ts
│       │   │   └── renderer-readme.md
│       │   ├── tsconfig.json
│       │   ├── typedoc.json
│       │   └── validation/
│       │       ├── callbackParameters.ts
│       │       ├── class.ts
│       │       ├── externalType.ts
│       │       ├── function.ts
│       │       ├── getSignature.ts
│       │       ├── implemented.ts
│       │       ├── indexSignature.ts
│       │       ├── intentionallyNotDocumented.ts
│       │       ├── interface.ts
│       │       ├── namespace.ts
│       │       ├── object.ts
│       │       ├── parameter.ts
│       │       ├── return.ts
│       │       ├── setSignature.ts
│       │       ├── typeParameter.ts
│       │       ├── unusedMergeModuleWith.ts
│       │       └── variable.ts
│       ├── declarationReference.test.ts
│       ├── internationalization.test.ts
│       ├── issues.c2.test.ts
│       ├── merge.test.ts
│       ├── models/
│       │   ├── comment.test.ts
│       │   ├── kind.test.ts
│       │   ├── reflections.test.ts
│       │   └── types.test.ts
│       ├── module/
│       │   ├── a.ts
│       │   └── b.ts
│       ├── output/
│       │   ├── Slugger.test.ts
│       │   ├── formatter.test.ts
│       │   ├── lib.test.tsx
│       │   ├── output.test.ts
│       │   └── router.test.ts
│       ├── packages.test.ts
│       ├── plugins/
│       │   ├── absolute.ts
│       │   └── relative.ts
│       ├── programs.ts
│       ├── project.test.ts
│       ├── renderer/
│       │   ├── DefaultTheme.test.ts
│       │   ├── specs/
│       │   │   ├── classes/
│       │   │   │   ├── BaseClass.json
│       │   │   │   ├── GH3007.DOMBase.json
│       │   │   │   ├── GH3007.DOMClass.json
│       │   │   │   ├── GH3014.json
│       │   │   │   ├── GH3052.CustomPromise.json
│       │   │   │   ├── GH3052.PromiseReference.json
│       │   │   │   ├── GenericClass.json
│       │   │   │   ├── ModifiersClass.json
│       │   │   │   └── RenderClass.json
│       │   │   ├── documents/
│       │   │   │   └── doc.json
│       │   │   ├── enums/
│       │   │   │   └── Enumeration.json
│       │   │   ├── functions/
│       │   │   │   └── box.json
│       │   │   ├── hierarchy.json
│       │   │   ├── index.json
│       │   │   ├── interfaces/
│       │   │   │   ├── BaseInterface.json
│       │   │   │   ├── DisabledGroups.json
│       │   │   │   ├── ExpandType.ExpandedByDefault.json
│       │   │   │   ├── GH2982.TMXDataNode.json
│       │   │   │   ├── GH3007.DOMIterable.json
│       │   │   │   ├── NoneCategory.json
│       │   │   │   ├── NoneGroup.json
│       │   │   │   └── gh2995.json
│       │   │   ├── modules/
│       │   │   │   ├── ExpandType.NestedBehavior1.json
│       │   │   │   ├── ExpandType.json
│       │   │   │   ├── GH2982.json
│       │   │   │   ├── GH3007.json
│       │   │   │   └── GH3052.json
│       │   │   ├── modules.json
│       │   │   └── types/
│       │   │       ├── ExpandType.AExpanded.json
│       │   │       ├── ExpandType.BExpanded.json
│       │   │       ├── ExpandType.Expandable.json
│       │   │       ├── ExpandType.Expandable2.json
│       │   │       ├── ExpandType.NestedBehavior1.AExpanded.json
│       │   │       ├── ExpandType.NestedBehavior1.AllExpanded.json
│       │   │       ├── GH2982.TMXNode.json
│       │   │       ├── Nested.json
│       │   │       └── UnionComments.json
│       │   └── testRendererUtils.ts
│       ├── slow/
│       │   ├── README.md
│       │   ├── entry-point.test.ts
│       │   └── internationalization-usage.test.ts
│       ├── utils/
│       │   ├── fs.test.ts
│       │   ├── general.test.ts
│       │   ├── html.test.ts
│       │   ├── languageAliases.test.ts
│       │   ├── minimalSourceFile.test.ts
│       │   ├── options/
│       │   │   ├── declaration.test.ts
│       │   │   ├── default-options.test.ts
│       │   │   ├── help.test.ts
│       │   │   ├── options.test.ts
│       │   │   ├── readers/
│       │   │   │   ├── arguments.test.ts
│       │   │   │   ├── package-json.test.ts
│       │   │   │   ├── tsconfig.test.ts
│       │   │   │   └── typedoc.test.ts
│       │   │   └── tsdoc-defaults.test.ts
│       │   ├── paths.test.ts
│       │   ├── plugins.test.ts
│       │   └── sort.test.ts
│       ├── utils-common/
│       │   ├── array.test.ts
│       │   ├── enum.test.ts
│       │   ├── events.test.ts
│       │   ├── hooks.test.ts
│       │   ├── jsx.test.tsx
│       │   ├── map.test.ts
│       │   ├── path.test.ts
│       │   └── validation.test.ts
│       ├── utils.ts
│       └── validation.test.ts
├── static/
│   └── style.css
├── tsconfig.json
└── tsdoc.json
Download .txt
Showing preview only (217K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (2666 symbols across 455 files)

FILE: example/src/classes/CancellablePromise.ts
  class Cancellation (line 8) | class Cancellation extends Error {
    method constructor (line 9) | constructor(message = "Promise canceled.") {
  type PromiseWithCancel (line 17) | type PromiseWithCancel<T> = PromiseLike<T> & { cancel(): void };
  function isPromiseWithCancel (line 22) | function isPromiseWithCancel<T>(value: unknown): value is PromiseWithCan...
  class CancellablePromise (line 52) | class CancellablePromise<T> {
    method constructor (line 76) | constructor(promise: PromiseLike<T>, cancel: (reason?: string) => void) {
    method then (line 101) | then<TResult1 = T, TResult2 = never>(
    method catch (line 152) | catch<TResult = never>(
    method finally (line 169) | finally(
    method resolve (line 189) | static resolve(value?: unknown): CancellablePromise<unknown> {
    method reject (line 201) | static reject<T>(reason?: unknown): CancellablePromise<T> {
    method all (line 313) | static all(values: readonly unknown[]): CancellablePromise<unknown> {
    method allSettled (line 351) | static allSettled(values: unknown[]): CancellablePromise<unknown> {
    method race (line 370) | static race<T>(values: readonly T[]): CancellablePromise<Awaited<T>> {
    method delay (line 385) | static delay(ms: number): CancellablePromise<void> {

FILE: example/src/classes/Customer.ts
  method nextOrderNumber (line 25) | get nextOrderNumber(): string {
  method nextOrderNumber (line 33) | set nextOrderNumber(value: string | number) {
  method constructor (line 48) | constructor(id: number, name: string, nextOrderNumber: string | number) {
  method onOrderPlaced (line 56) | onOrderPlaced(): void {
  method isValid (line 70) | protected isValid(): boolean {
  method doInternalStuff (line 75) | private doInternalStuff(): void {
  class DeliveryCustomer (line 85) | class DeliveryCustomer extends Customer {
    method constructor (line 100) | constructor(
    method isValid (line 116) | protected isValid(): boolean {
  class WalkInCustomer (line 129) | class WalkInCustomer extends Customer {
    method onOrderPlaced (line 139) | onOrderPlaced(): void {

FILE: example/src/classes/StringArray.ts
  class StringArray (line 14) | class StringArray extends Array<string> {
    method customMethod (line 16) | customMethod(): void {

FILE: example/src/enums.ts
  type SimpleEnum (line 5) | enum SimpleEnum {
  type CrazyEnum (line 26) | enum CrazyEnum {

FILE: example/src/functions.ts
  function sqrt (line 7) | function sqrt(x: number): number {
  function concat (line 39) | function concat<T>(array1: T[], array2: T[]): T[] {
  type MakeHttpCallAOptions (line 46) | interface MakeHttpCallAOptions {
  function makeHttpCallA (line 65) | function makeHttpCallA(
  function makeHttpCallB (line 78) | function makeHttpCallB(options: {
  function overloadedFunction (line 113) | function overloadedFunction(a: unknown, b: unknown): string {

FILE: example/src/internals.ts
  function anInternalFunction (line 8) | function anInternalFunction(): void {
  function willNotBeDocumented (line 17) | function willNotBeDocumented(target: any, value: number): number {

FILE: example/src/reactComponents.tsx
  type CardAProps (line 6) | interface CardAProps {
  function CardA (line 42) | function CardA({ children, variant = "primary" }: PropsWithChildren<Card...
  function CardB (line 74) | function CardB({
  type EasyFormDialogProps (line 85) | interface EasyFormDialogProps {
  function EasyFormDialog (line 254) | function EasyFormDialog(props: PropsWithChildren<EasyFormDialogProps>): ...

FILE: example/src/types.ts
  type SimpleTypeAlias (line 2) | type SimpleTypeAlias = string | number | boolean;
  type ComplexGenericTypeAlias (line 5) | type ComplexGenericTypeAlias<T> =
  type User (line 17) | interface User {
  type AdminUser (line 40) | interface AdminUser extends User {

FILE: example/src/variables.ts
  constant STRING_CONSTANT (line 5) | const STRING_CONSTANT = "FOOBAR";

FILE: scripts/build_themes.js
  method setup (line 12) | setup(build) {
  function main (line 26) | async function main() {

FILE: scripts/capture_screenshots.mjs
  class PQueue (line 10) | class PQueue {
    method constructor (line 14) | constructor(concurrency) {
    method add (line 20) | add(action) {
    method run (line 25) | run() {
  function findHtmlPages (line 60) | function findHtmlPages(root) {
  function captureScreenshots (line 89) | async function captureScreenshots(

FILE: scripts/create_release.js
  constant REMOTE (line 10) | const REMOTE = "origin";
  constant REPO (line 11) | const REPO = "TypeStrong/typedoc";
  constant CHANGELOG_MD (line 12) | const CHANGELOG_MD = join(fileURLToPath(import.meta.url), "../../CHANGEL...
  function exec (line 25) | function exec(cmd) {
  function createGitHubRelease (line 39) | async function createGitHubRelease(args) {
  function main (line 72) | async function main() {

FILE: scripts/data/api_users.js
  constant API_USERS (line 19) | const API_USERS = [
  constant OLD_API_USERS (line 35) | const OLD_API_USERS = [
  constant ALL_API_USERS (line 71) | const ALL_API_USERS = [...API_USERS, ...OLD_API_USERS];

FILE: scripts/download_plugins.cjs
  constant CUTOFF_DAYS (line 7) | const CUTOFF_DAYS = 180;
  constant CUTOFF_MS (line 8) | const CUTOFF_MS = Date.now() - 1000 * 60 * 60 * 24 * CUTOFF_DAYS;
  function exec (line 19) | function exec(command) {
  function getPlugins (line 31) | async function getPlugins() {
  function getTarballUrl (line 44) | function getTarballUrl(pack) {
  function downloadTarball (line 48) | function downloadTarball(url, outDir) {
  function inflate (line 70) | async function inflate(file) {
  function main (line 84) | async function main(args) {

FILE: scripts/generate_options_schema.js
  constant IGNORED_OPTIONS (line 12) | const IGNORED_OPTIONS = new Set(["help", "version"]);
  constant IGNORED_DEFAULT_OPTIONS (line 14) | const IGNORED_DEFAULT_OPTIONS = new Set(["options", "tsconfig"]);
  method addDeclaration (line 26) | addDeclaration(option) {

FILE: scripts/generate_site_plugins.js
  constant NEXT_BREAKING_TYPEDOC_VERSION (line 7) | const NEXT_BREAKING_TYPEDOC_VERSION = semver.parse(TYPEDOC_VERSION)?.inc...
  constant CACHE_ROOT (line 12) | const CACHE_ROOT = "tmp/site-cache";
  constant EXCLUDED_PLUGINS (line 16) | const EXCLUDED_PLUGINS = [
  constant EXCLUDED_PLUGIN_USERS (line 35) | const EXCLUDED_PLUGIN_USERS = [
  function exec (line 45) | function exec(command) {
  function getSupportedVersions (line 55) | async function getSupportedVersions(npmPackage) {
  function getAllPackages (line 90) | async function getAllPackages(query) {
  function getSupportingPlugins (line 108) | function getSupportingPlugins(typedocVersion, plugins) {
  function getLocalCache (line 148) | async function getLocalCache(filename, getter) {
  function getAllVersions (line 170) | function getAllVersions(plugins) {
  function relativeDate (line 175) | function relativeDate(date) {
  function createInclude (line 221) | async function createInclude(plugins, checkVersions, path) {
  function miniMarkdown (line 270) | function miniMarkdown(text) {
  function escapeHtml (line 282) | function escapeHtml(html) {
  function main (line 296) | async function main() {

FILE: scripts/prepare.mjs
  function isInstallingAsGitDepInNpm (line 20) | function isInstallingAsGitDepInNpm() {

FILE: scripts/rebuild_specs.js
  method supports (line 26) | supports(obj) {
  method toObject (line 32) | toObject(ref, obj) {
  method supports (line 45) | supports(obj) {
  method toObject (line 49) | toObject(_refl, obj) {
  function rebuildConverterTests (line 82) | function rebuildConverterTests(dirs) {
  function rebuildRendererTest (line 125) | async function rebuildRendererTest(specPath) {
  function main (line 130) | async function main() {

FILE: scripts/sync_i18n.js
  function findDescendants (line 5) | function findDescendants(node, match) {
  function loadTags (line 15) | function loadTags() {
  function loadEnLocale (line 48) | function loadEnLocale() {
  function organizeLocale (line 116) | function organizeLocale(langId) {
  function listLocales (line 163) | function listLocales() {

FILE: scripts/testcase.js
  function exec (line 14) | function exec(cmd) {
  function guessExtension (line 29) | function guessExtension(code) {
  function main (line 41) | async function main() {

FILE: scripts/visual_regression.js
  function accept (line 11) | function accept(dir) {
  function compare (line 19) | function compare(dir) {
  function printHelp (line 42) | function printHelp() {
  function main (line 64) | async function main() {

FILE: site/site-plugin.js
  function load (line 8) | function load(app) {

FILE: site/typedoc-plugin-redirect.js
  constant PLUGIN_PREFIX (line 7) | const PLUGIN_PREFIX = "[typedoc-plugin-redirect]";
  constant PAGE_TEMPLATE (line 9) | const PAGE_TEMPLATE = `<!DOCTYPE html>
  function load (line 23) | function load(app) {
  function buildOutputFile (line 69) | function buildOutputFile(outDir, outputPath, targetPath) {
  function escapeHtml (line 100) | function escapeHtml(html) {

FILE: src/lib/application.ts
  constant DETECTOR (line 62) | const DETECTOR = Symbol();
  function createAppForTesting (line 64) | function createAppForTesting(): Application {
  constant DEFAULT_READERS (line 71) | const DEFAULT_READERS = [
  type ApplicationEvents (line 77) | interface ApplicationEvents {
  class Application (line 104) | class Application extends AbstractComponent<
    method logger (line 135) | get logger(): Logger {
    method logger (line 138) | set logger(l: Logger) {
    method constructor (line 199) | private constructor(detector: typeof DETECTOR) {
    method bootstrapWithPlugins (line 224) | static async bootstrapWithPlugins(
    method bootstrap (line 255) | static async bootstrap(
    method _bootstrap (line 265) | private async _bootstrap(options: TypeDocOptions) {
    method setOptions (line 329) | setOptions(options: TypeDocOptions, reportErrors = true) {
    method getTypeScriptPath (line 348) | public getTypeScriptPath(): string {
    method getTypeScriptVersion (line 353) | public getTypeScriptVersion(): string {
    method getEntryPoints (line 357) | public getEntryPoints(): DocumentationEntryPoint[] | undefined {
    method getDefinedEntryPoints (line 368) | public getDefinedEntryPoints(): DocumentationEntryPoint[] | undefined {
    method convert (line 377) | public async convert(): Promise<ProjectReflection | undefined> {
    method clearWatches (line 445) | private clearWatches() {
    method watchConfigFile (line 450) | private watchConfigFile(path: string) {
    method watchFile (line 470) | public watchFile(path: string, shouldRestart = false) {
    method convertAndWatch (line 481) | public async convertAndWatch(
    method validate (line 667) | validate(project: ProjectReflection) {
    method generateOutputs (line 714) | public async generateOutputs(project: ProjectReflection): Promise<void> {
    method generateDocs (line 721) | public async generateDocs(
    method generateJson (line 740) | public async generateJson(
    method toString (line 756) | override toString() {
    method _convertPackages (line 765) | private async _convertPackages(): Promise<ProjectReflection | undefine...
    method _merge (line 883) | private _merge(): ProjectReflection | undefined {

FILE: src/lib/cli.ts
  function main (line 18) | async function main() {
  function run (line 50) | async function run(app: td.Application) {
  function logRunSummary (line 131) | function logRunSummary(logger: td.Logger): void {

FILE: src/lib/converter/comments/blockLexer.ts
  function getLinkTags (line 49) | function getLinkTags(
  function attachLinkTagResult (line 344) | function attachLinkTagResult(token: Token) {
  function makeToken (line 373) | function makeToken(kind: TokenSyntaxKind, size: number): Token {
  function skipIndent (line 384) | function skipIndent(pos: number) {
  function lookaheadExactlyNTicks (line 399) | function lookaheadExactlyNTicks(pos: number, n: number) {
  function findEndOfType (line 407) | function findEndOfType(pos: number): number {
  function findEndOfString (line 431) | function findEndOfString(pos: number): number {
  function nextNonWs (line 460) | function nextNonWs(pos: number): string | undefined {
  function discoverIndent (line 468) | function discoverIndent(
  function getRightmostName (line 496) | function getRightmostName(name: ts.EntityName | ts.JSDocMemberName) {

FILE: src/lib/converter/comments/declarationReferenceResolver.ts
  function resolveReferenceReflection (line 14) | function resolveReferenceReflection(ref: Reflection): Reflection {
  function resolveDeclarationReference (line 21) | function resolveDeclarationReference(
  function filterMapByMeaning (line 121) | function filterMapByMeaning(
  function resolveKeyword (line 134) | function resolveKeyword(
  function resolveSymbolReferencePart (line 218) | function resolveSymbolReferencePart(

FILE: src/lib/converter/comments/discovery.ts
  type DiscoveredComment (line 171) | interface DiscoveredComment {
  function discoverFileComments (line 178) | function discoverFileComments(
  function discoverNodeComment (line 200) | function discoverNodeComment(
  function checkCommentDeclarations (line 222) | function checkCommentDeclarations(
  function discoverComment (line 258) | function discoverComment(
  function discoverCommentWorker (line 291) | function discoverCommentWorker(
  function discoverSignatureComment (line 392) | function discoverSignatureComment(
  function findJsDocForComment (line 440) | function findJsDocForComment(
  function isTopmostModuleDeclaration (line 472) | function isTopmostModuleDeclaration(node: ts.ModuleDeclaration): boolean {
  function getRootModuleDeclaration (line 486) | function getRootModuleDeclaration(node: ts.ModuleDeclaration): ts.Node {
  function declarationToCommentNodeIgnoringParents (line 499) | function declarationToCommentNodeIgnoringParents(
  function declarationToCommentNodes (line 557) | function declarationToCommentNodes(
  function findBaseOfDeclaration (line 664) | function findBaseOfDeclaration<T>(
  function collectCommentRanges (line 695) | function collectCommentRanges(
  function permittedRange (line 728) | function permittedRange(

FILE: src/lib/converter/comments/index.ts
  type CommentParserConfig (line 18) | interface CommentParserConfig {
  type CommentContext (line 30) | interface CommentContext {
  type CommentContextOptionalChecker (line 38) | interface CommentContextOptionalChecker {
  function clearCommentCache (line 60) | function clearCommentCache() {
  function getCommentIgnoringCacheNoDiscoveryId (line 65) | function getCommentIgnoringCacheNoDiscoveryId(
  function getCommentWithCache (line 104) | function getCommentWithCache(
  function getCommentImpl (line 128) | function getCommentImpl(
  function getComment (line 169) | function getComment(
  function getNodeComment (line 221) | function getNodeComment(
  function getFileComment (line 233) | function getFileComment(
  function getConstructorParamPropertyComment (line 273) | function getConstructorParamPropertyComment(
  function getSignatureComment (line 291) | function getSignatureComment(
  function buildJsDocCommentFromParts (line 302) | function buildJsDocCommentFromParts(
  function getJsDocComment (line 344) | function getJsDocComment(

FILE: src/lib/converter/comments/lexer.ts
  type TokenSyntaxKind (line 3) | enum TokenSyntaxKind {
  type Token (line 13) | interface Token {

FILE: src/lib/converter/comments/lineLexer.ts
  function makeToken (line 250) | function makeToken(kind: TokenSyntaxKind, size: number): Token {
  function skipLeadingLineTrivia (line 261) | function skipLeadingLineTrivia(pos: number) {
  function lookaheadExactlyNTicks (line 275) | function lookaheadExactlyNTicks(pos: number, n: number) {
  function findEndOfType (line 283) | function findEndOfType(pos: number): number {
  function findEndOfString (line 307) | function findEndOfString(pos: number): number {
  function nextNonWs (line 336) | function nextNonWs(pos: number): string | undefined {

FILE: src/lib/converter/comments/linkResolver.ts
  type ExternalResolveResult (line 15) | type ExternalResolveResult = { target: string; caption?: string };
  type ExternalSymbolResolver (line 25) | type ExternalSymbolResolver = (
  type LinkResolverOptions (line 32) | type LinkResolverOptions = {
  function resolveLinks (line 36) | function resolveLinks(
  function resolvePartLinks (line 140) | function resolvePartLinks(
  function processPart (line 149) | function processPart(
  function resolveLinkTag (line 168) | function resolveLinkTag(

FILE: src/lib/converter/comments/parser.ts
  type LookaheadGenerator (line 14) | interface LookaheadGenerator<T> {
  function makeLookaheadGenerator (line 23) | function makeLookaheadGenerator<T>(
  function parseComment (line 62) | function parseComment(
  function parseCommentString (line 125) | function parseCommentString(
  constant HAS_USER_IDENTIFIER (line 248) | const HAS_USER_IDENTIFIER: TagString[] = [
  function makeCodeBlock (line 259) | function makeCodeBlock(text: string) {
  function postProcessComment (line 267) | function postProcessComment(
  function blockTag (line 369) | function blockTag(
  function defaultBlockContent (line 434) | function defaultBlockContent(
  function exampleBlock (line 487) | function exampleBlock(
  function blockContent (line 601) | function blockContent(
  function inlineTag (line 725) | function inlineTag(

FILE: src/lib/converter/comments/rawLexer.ts
  function makeToken (line 247) | function makeToken(kind: TokenSyntaxKind, size: number): Token {
  function lookaheadExactlyNTicks (line 258) | function lookaheadExactlyNTicks(pos: number, n: number) {

FILE: src/lib/converter/comments/tagName.ts
  function extractTagName (line 5) | function extractTagName(text: string): {
  function skipWs (line 53) | function skipWs(text: string, pos: number) {
  function skipWith (line 57) | function skipWith(text: string, pos: number, reg: RegExp) {

FILE: src/lib/converter/comments/textParser.ts
  type TextParserData (line 18) | interface TextParserData {
  type RelativeLink (line 30) | interface RelativeLink {
  class TextParserReentryState (line 44) | class TextParserReentryState {
    method checkState (line 49) | checkState(token: Token) {
  function textContent (line 73) | function textContent(
  function checkMarkdownLink (line 162) | function checkMarkdownLink(
  function checkReference (line 248) | function checkReference(data: TextParserData): RelativeLink | undefined {
  function checkTagLink (line 306) | function checkTagLink(data: TextParserData): RelativeLink[] {
  function checkAttributes (line 341) | function checkAttributes(
  function checkAttributeDirectPath (line 371) | function checkAttributeDirectPath(
  function checkAttributeSrcSet (line 395) | function checkAttributeSrcSet(data: TextParserData, text: string, pos: n...
  function isRelativePath (line 455) | function isRelativePath(link: string) {
  function findLabelEnd (line 465) | function findLabelEnd(text: string, pos: number) {

FILE: src/lib/converter/context.ts
  class Context (line 36) | class Context {
    method checker (line 45) | get checker(): ts.TypeChecker {
    method program (line 53) | get program(): ts.Program {
    method constructor (line 91) | constructor(
    method logger (line 105) | get logger() {
    method getTypeAtLocation (line 115) | getTypeAtLocation(node: ts.Node): ts.Type | undefined {
    method getSymbolAtLocation (line 140) | getSymbolAtLocation(node: ts.Node): ts.Symbol | undefined {
    method expectSymbolAtLocation (line 148) | expectSymbolAtLocation(node: ts.Node): ts.Symbol {
    method resolveAliasedSymbol (line 164) | resolveAliasedSymbol(symbol: ts.Symbol): ts.Symbol {
    method createDeclarationReflection (line 168) | createDeclarationReflection(
    method postReflectionCreation (line 194) | postReflectionCreation(
    method finalizeDeclarationReflection (line 252) | finalizeDeclarationReflection(reflection: DeclarationReflection) {
    method createSymbolReference (line 270) | createSymbolReference(
    method createSymbolId (line 300) | createSymbolId(symbol: ts.Symbol, declaration?: ts.Declaration) {
    method addChild (line 304) | addChild(reflection: DeclarationReflection | DocumentReflection) {
    method shouldIgnore (line 310) | shouldIgnore(symbol: ts.Symbol) {
    method registerReflection (line 321) | registerReflection(reflection: Reflection, symbol: ts.Symbol | undefin...
    method getReflectionFromSymbol (line 360) | getReflectionFromSymbol(symbol: ts.Symbol) {
    method getSymbolFromReflection (line 364) | getSymbolFromReflection(reflection: Reflection) {
    method setActiveProgram (line 369) | setActiveProgram(program: ts.Program | undefined) {
    method createCommentContext (line 373) | private createCommentContext(): CommentContext {
    method getComment (line 383) | getComment(symbol: ts.Symbol, kind: ReflectionKind) {
    method getNodeComment (line 391) | getNodeComment(node: ts.Node, moduleComment: boolean) {
    method getFileComment (line 399) | getFileComment(node: ts.SourceFile) {
    method getJsDocComment (line 406) | getJsDocComment(
    method getSignatureComment (line 420) | getSignatureComment(
    method shouldInline (line 429) | shouldInline(symbol: ts.Symbol, name: string): boolean {
    method withScope (line 438) | public withScope(scope: Reflection): Context {

FILE: src/lib/converter/convert-expression.ts
  function convertDefaultValue (line 9) | function convertDefaultValue(
  function convertExpression (line 20) | function convertExpression(expression: ts.Expression): string {

FILE: src/lib/converter/converter.ts
  type ConverterEvents (line 66) | interface ConverterEvents {
  class Converter (line 99) | class Converter extends AbstractComponent<Application, ConverterEvents> {
    method config (line 154) | get config(): CommentParserConfig {
    method constructor (line 253) | constructor(owner: Application) {
    method convert (line 315) | convert(
    method addProjectDocuments (line 354) | addProjectDocuments(project: ProjectReflection) {
    method convertSymbol (line 376) | convertSymbol(
    method convertType (line 393) | convertType(
    method parseRawComment (line 404) | parseRawComment(file: MinimalSourceFile, files: FileRegistry) {
    method addUnknownSymbolResolver (line 426) | addUnknownSymbolResolver(resolver: ExternalSymbolResolver): void {
    method resolveExternalLink (line 431) | resolveExternalLink(
    method resolveLinks (line 450) | resolveLinks(
    method permitDeferredConversion (line 481) | permitDeferredConversion(): void {
    method finalizeDeferredConversion (line 490) | finalizeDeferredConversion(): void {
    method deferConversion (line 506) | deferConversion(cb: () => void): void {
    method compile (line 517) | private compile(
    method convertExports (line 548) | private convertExports(
    method resolve (line 617) | private resolve(context: Context): void {
    method shouldIgnore (line 638) | shouldIgnore(symbol: ts.Symbol, checker: ts.TypeChecker) {
    method isExcluded (line 647) | private isExcluded(symbol: ts.Symbol) {
    method isExternal (line 657) | isExternal(symbol: ts.Symbol, checker: ts.TypeChecker) {
    method processDocumentTags (line 676) | processDocumentTags(reflection: Reflection, parent: ContainerReflectio...
    method addDocument (line 708) | private addDocument(
    method _buildCommentParserConfig (line 785) | private _buildCommentParserConfig() {
  function getSymbolForModuleLike (line 810) | function getSymbolForModuleLike(
  function getExports (line 844) | function getExports(
  function isDirectExport (line 920) | function isDirectExport(symbol: ts.Symbol, file: ts.SourceFile): boolean {

FILE: src/lib/converter/factories/index-signature.ts
  function convertIndexSignatures (line 14) | function convertIndexSignatures(context: Context, type: ts.Type) {

FILE: src/lib/converter/factories/signature.ts
  function convertConstructSignatures (line 21) | function convertConstructSignatures(context: Context, symbol: ts.Symbol) {
  function createSignature (line 52) | function createSignature(
  function createConstructSignatureWithType (line 172) | function createConstructSignatureWithType(
  function convertParameters (line 238) | function convertParameters(
  function convertParameterNodes (line 348) | function convertParameterNodes(
  function checkForDestructuredParameterDefaults (line 400) | function checkForDestructuredParameterDefaults(
  function convertTypeParameters (line 420) | function convertTypeParameters(
  function convertTypeParameterNodes (line 470) | function convertTypeParameterNodes(
  function createTypeParamReflection (line 477) | function createTypeParamReflection(
  function convertTemplateParameterNodes (line 523) | function convertTemplateParameterNodes(
  function getVariance (line 569) | function getVariance(
  function convertPredicate (line 592) | function convertPredicate(

FILE: src/lib/converter/factories/symbol-id.ts
  function createSymbolIdImpl (line 11) | function createSymbolIdImpl(symbol: ts.Symbol, declaration?: ts.Declarat...

FILE: src/lib/converter/jsdoc.ts
  function convertJsDocAliasAsInterface (line 27) | function convertJsDocAliasAsInterface(
  function convertJsDocAlias (line 70) | function convertJsDocAlias(
  function convertJsDocCallback (line 127) | function convertJsDocCallback(
  function convertJsDocInterface (line 147) | function convertJsDocInterface(
  function convertJsDocSignature (line 171) | function convertJsDocSignature(context: Context, node: ts.JSDocSignature) {
  function convertTemplateParameters (line 221) | function convertTemplateParameters(context: Context, node: ts.JSDoc) {
  function getTypedefReExportTarget (line 229) | function getTypedefReExportTarget(

FILE: src/lib/converter/plugins/CategoryPlugin.ts
  class CategoryPlugin (line 25) | class CategoryPlugin extends ConverterComponent {
    method constructor (line 43) | constructor(owner: Converter) {
    method onRevive (line 57) | private onRevive(project: ProjectReflection) {
    method setup (line 74) | private setup() {
    method onEndResolve (line 89) | private onEndResolve(context: Context) {
    method categorize (line 103) | private categorize(obj: ContainerReflection) {
    method groupCategorize (line 111) | private groupCategorize(obj: ContainerReflection) {
    method lumpCategorize (line 134) | private lumpCategorize(obj: ContainerReflection) {
    method getReflectionCategories (line 159) | private getReflectionCategories(
    method getSortFunction (line 213) | getSortFunction(reflection: ContainerReflection) {
    method sortCatCallback (line 233) | private static sortCatCallback(
    method getCategories (line 257) | static getCategories(

FILE: src/lib/converter/plugins/CommentPlugin.ts
  constant NEVER_RENDERED (line 44) | const NEVER_RENDERED = [
  constant MUTUALLY_EXCLUSIVE_MODIFIERS (line 58) | const MUTUALLY_EXCLUSIVE_MODIFIERS = [
  class CommentPlugin (line 123) | class CommentPlugin extends ConverterComponent {
    method excludeNotDocumentedKinds (line 155) | private get excludeNotDocumentedKinds(): number {
    method constructor (line 162) | constructor(owner: Converter) {
    method applyModifiers (line 192) | private applyModifiers(reflection: Reflection, comment: Comment) {
    method onCreateTypeParameter (line 269) | private onCreateTypeParameter(
    method onDeclaration (line 321) | private onDeclaration(_context: Context, reflection: Reflection) {
    method onBeginResolve (line 349) | private onBeginResolve(context: Context) {
    method onResolve (line 408) | private onResolve(context: Context, reflection: Reflection) {
    method moveSignatureParamComments (line 495) | private moveSignatureParamComments(
    method removeExcludedTags (line 547) | private removeExcludedTags(comment: Comment) {
    method cascadeModifiers (line 558) | private cascadeModifiers(reflection: Reflection) {
    method isHidden (line 586) | private isHidden(reflection: Reflection): boolean {
    method excludedByCategory (line 702) | private excludedByCategory(reflection: Reflection): boolean {
    method validateParamTags (line 718) | private validateParamTags(
    method suppressCommentWarnings (line 743) | private suppressCommentWarnings(comment: Comment) {
  function inTypeLiteral (line 749) | function inTypeLiteral(refl: Reflection | undefined) {
  function validHighlightedName (line 759) | function validHighlightedName(ref: ReferenceType, name: string) {
  function moveNestedParamTags (line 778) | function moveNestedParamTags(
  function movePropertyTags (line 846) | function movePropertyTags(comment: Comment, container: Reflection) {
  function mergeSeeTags (line 875) | function mergeSeeTags(comment: Comment) {

FILE: src/lib/converter/plugins/GroupPlugin.ts
  class GroupPlugin (line 49) | class GroupPlugin extends ConverterComponent {
    method constructor (line 65) | constructor(owner: Converter) {
    method onEndResolve (line 84) | private onEndResolve(context: Context) {
    method onRevive (line 96) | private onRevive(project: ProjectReflection) {
    method setup (line 109) | private setup() {
    method group (line 117) | private group(reflection: ContainerReflection) {
    method getGroups (line 151) | getGroups(reflection: DeclarationReflection | DocumentReflection) {
    method getGroups (line 158) | static getGroups(
    method getReflectionGroups (line 219) | getReflectionGroups(
    method getSortFunction (line 261) | getSortFunction(reflection: ContainerReflection) {
    method sortGroupCallback (line 283) | static sortGroupCallback(a: ReflectionGroup, b: ReflectionGroup): numb...

FILE: src/lib/converter/plugins/ImplementsPlugin.ts
  class ImplementsPlugin (line 24) | class ImplementsPlugin extends ConverterComponent {
    method constructor (line 29) | constructor(owner: Converter) {
    method analyzeImplements (line 51) | private analyzeImplements(
    method analyzeInheritance (line 109) | private analyzeInheritance(
    method cleanUpImplements (line 210) | private cleanUpImplements(
    method onResolveEnd (line 236) | private onResolveEnd(context: Context) {
    method onRevive (line 240) | private onRevive(project: ProjectReflection) {
    method resolve (line 246) | private resolve(project: ProjectReflection) {
    method tryResolve (line 255) | private tryResolve(
    method doResolve (line 286) | private doResolve(
    method getExtensionInfo (line 339) | private getExtensionInfo(
    method onSignature (line 372) | private onSignature(context: Context, reflection: SignatureReflection) {
    method onDeclaration (line 382) | private onDeclaration(context: Context, reflection: DeclarationReflect...
    method handleInheritedComments (line 462) | private handleInheritedComments(
    method copyComment (line 522) | private copyComment(target: Reflection, source: Reflection) {
  function getConstructorPackagePath (line 566) | function getConstructorPackagePath(context: Context, clause: ts.Expressi...
  function constructorInheritance (line 578) | function constructorInheritance(
  function findProperty (line 607) | function findProperty(reflection: DeclarationReflection, parent: ts.Type) {
  function createLink (line 615) | function createLink(
  function shouldCopyComment (line 667) | function shouldCopyComment(
  function findMatchingMember (line 693) | function findMatchingMember(
  function isValidRef (line 707) | function isValidRef(ref: ReferenceType) {

FILE: src/lib/converter/plugins/IncludePlugin.ts
  class IncludePlugin (line 15) | class IncludePlugin extends ConverterComponent {
    method logger (line 16) | get logger() {
    method constructor (line 20) | constructor(owner: Converter) {
    method onCreate (line 31) | private onCreate(_context: unknown, refl: Reflection) {
    method checkIncludeTagsParts (line 50) | checkIncludeTagsParts(
    method getRegions (line 137) | getRegions(
    method getLines (line 270) | getLines(
  function makeCodeBlock (line 332) | function makeCodeBlock(lang: string, code: string) {
  function parseIncludeCodeTextPart (line 337) | function parseIncludeCodeTextPart(text: string): {
  type RegionTagRETuple (line 357) | type RegionTagRETuple = [

FILE: src/lib/converter/plugins/InheritDocPlugin.ts
  class InheritDocPlugin (line 32) | class InheritDocPlugin extends ConverterComponent {
    method constructor (line 42) | constructor(owner: Converter) {
    method processInheritDoc (line 56) | private processInheritDoc(project: ProjectReflection) {
    method copyComment (line 115) | private copyComment(source: Reflection, target: Reflection) {
    method createCircularDependencyWarnings (line 188) | private createCircularDependencyWarnings() {
  function copySummaries (line 218) | function copySummaries(
  function extractInheritDocTagReference (line 228) | function extractInheritDocTagReference(

FILE: src/lib/converter/plugins/LinkResolverPlugin.ts
  class LinkResolverPlugin (line 12) | class LinkResolverPlugin extends ConverterComponent {
    method constructor (line 16) | constructor(owner: Converter) {
    method onResolve (line 30) | onResolve(context: Context) {
    method resolveLinks (line 34) | resolveLinks(project: ProjectReflection) {

FILE: src/lib/converter/plugins/MergeModuleWithPlugin.ts
  class MergeModuleWithPlugin (line 14) | class MergeModuleWithPlugin extends ConverterComponent {
    method constructor (line 15) | constructor(owner: Converter) {
    method onResolveBegin (line 31) | private onResolveBegin(context: Context) {
    method onRevive (line 35) | private onRevive(project: ProjectReflection) {
    method checkAndMerge (line 42) | private checkAndMerge(refl: Reflection) {

FILE: src/lib/converter/plugins/PackagePlugin.ts
  class PackagePlugin (line 25) | class PackagePlugin extends ConverterComponent {
    method constructor (line 53) | constructor(owner: Converter) {
    method onRevive (line 68) | private onRevive(project: ProjectReflection) {
    method onBegin (line 76) | private onBegin() {
    method onBeginResolve (line 130) | private onBeginResolve(context: Context) {
    method addEntries (line 134) | private addEntries(project: ProjectReflection) {

FILE: src/lib/converter/plugins/SourcePlugin.ts
  class SourcePlugin (line 18) | class SourcePlugin extends ConverterComponent {
    method displayBasePath (line 34) | get displayBasePath() {
    method constructor (line 45) | constructor(owner: Converter) {
    method onEnd (line 62) | private onEnd() {
    method onDeclaration (line 75) | private onDeclaration(
    method onSignature (line 108) | private onSignature(
    method onBeginResolve (line 142) | private onBeginResolve(context: Context) {
  function getLocationNode (line 203) | function getLocationNode(node: ts.Node) {
  function replaceSourcesWithParentSources (line 208) | function replaceSourcesWithParentSources(

FILE: src/lib/converter/plugins/TypePlugin.ts
  class TypePlugin (line 18) | class TypePlugin extends ConverterComponent {
    method constructor (line 21) | constructor(owner: Converter) {
    method onRevive (line 36) | private onRevive(project: ProjectReflection) {
    method onResolve (line 44) | private onResolve(context: Context, reflection: Reflection) {
    method resolve (line 48) | private resolve(project: ProjectReflection, reflection: Reflection) {
    method postpone (line 113) | private postpone(reflection: DeclarationReflection) {
    method onResolveEnd (line 117) | private onResolveEnd(context: Context) {
    method finishResolve (line 121) | private finishResolve(project: ProjectReflection) {

FILE: src/lib/converter/symbols.ts
  function _convertSymbolNow (line 109) | function _convertSymbolNow(context: Context, symbol: ts.Symbol, exportSy...
  function convertSymbol (line 189) | function convertSymbol(
  function convertSymbols (line 209) | function convertSymbols(context: Context, symbols: readonly ts.Symbol[]) {
  function convertEnum (line 215) | function convertEnum(
  function convertEnumMember (line 240) | function convertEnumMember(
  function convertNamespace (line 266) | function convertNamespace(
  function convertTypeAlias (line 329) | function convertTypeAlias(
  function convertTypeAliasFromValueDeclaration (line 413) | function convertTypeAliasFromValueDeclaration(
  function attachUnionComments (line 449) | function attachUnionComments(
  function convertTypeAliasAsInterface (line 483) | function convertTypeAliasAsInterface(
  function convertFunctionOrMethod (line 530) | function convertFunctionOrMethod(
  function convertClassOrInterface (line 611) | function convertClassOrInterface(
  function convertProperty (line 750) | function convertProperty(
  function convertArrowAsMethod (line 861) | function convertArrowAsMethod(
  function convertConstructor (line 904) | function convertConstructor(context: Context, symbol: ts.Symbol): undefi...
  function convertAlias (line 932) | function convertAlias(
  function createAlias (line 974) | function createAlias(
  function convertVariable (line 992) | function convertVariable(
  function isEnumLike (line 1071) | function isEnumLike(
  function isValidEnumProperty (line 1086) | function isValidEnumProperty(type: ts.Type) {
  function convertVariableAsEnum (line 1093) | function convertVariableAsEnum(
  function convertVariableAsNamespace (line 1143) | function convertVariableAsNamespace(
  function convertVariableAsFunction (line 1162) | function convertVariableAsFunction(
  function convertFunctionProperties (line 1219) | function convertFunctionProperties(
  function convertSymbolAsClass (line 1246) | function convertSymbolAsClass(
  function convertAccessor (line 1336) | function convertAccessor(
  function isInherited (line 1398) | function isInherited(context: Context, symbol: ts.Symbol) {
  function setModifiers (line 1417) | function setModifiers(
  function setSymbolModifiers (line 1475) | function setSymbolModifiers(symbol: ts.Symbol, reflection: Reflection) {
  function shouldAutomaticallyConvertAsFunction (line 1482) | function shouldAutomaticallyConvertAsFunction(node: ts.Declaration): boo...
  function isFunctionLikeInitializer (line 1511) | function isFunctionLikeInitializer(node: ts.Expression): boolean {
  function isTypeOnlyExport (line 1527) | function isTypeOnlyExport(symbol: ts.Symbol | undefined): boolean {

FILE: src/lib/converter/types.ts
  type TypeConverter (line 39) | interface TypeConverter<
  function loadConverters (line 59) | function loadConverters() {
  function maybeConvertType (line 113) | function maybeConvertType(
  function convertType (line 125) | function convertType(
  method convert (line 203) | convert(context, node) {
  method convertType (line 206) | convertType(context, type) {
  method convert (line 220) | convert(context, node) {
  method convertType (line 228) | convertType(context, type) {
  method convert (line 240) | convert(context, node) {
  method convertType (line 298) | convertType(context, type) {
  method convert (line 332) | convert(context, node) {
  method convert (line 354) | convert(context, node) {
  method convertType (line 401) | convertType(context, type) {
  method convert (line 432) | convert(context, node) {
  method convertType (line 447) | convertType(context, type) {
  method convert (line 463) | convert(context, node) {
  method convertType (line 469) | convertType(context, type) {
  method convert (line 479) | convert(context, node) {
  method convertType (line 485) | convertType(context, type) {
  method convert (line 498) | convert(context, node) {
  method convertType (line 503) | convertType(context, type) {
  method convert (line 515) | convert() {
  method convertType (line 518) | convertType() {
  method convert (line 525) | convert(context, node) {
  method convertType (line 528) | convertType(context, type, _node, origNode) {
  method convert (line 563) | convert(_context, node) {
  method convertType (line 566) | convertType(_context, _type, node) {
  method convert (line 573) | convert(context, node) {
  method convert (line 584) | convert(context, node) {
  method convert (line 593) | convert(context, node) {
  method convert (line 609) | convert(context, node) {
  method convertType (line 655) | convertType(context, type) {
  method convert (line 699) | convert(context, node) {
  method convertType (line 721) | convertType(context, type, node) {
  method convert (line 747) | convert(context, node) {
  method convertType (line 779) | convertType(context, type, node, originalNode) {
  method convert (line 852) | convert(context, node) {
  method convert (line 861) | convert(context, node) {
  method convert (line 890) | convert(context, node) {
  method convertType (line 905) | convertType(context, type, node) {
  method convert (line 925) | convert(context, node) {
  method convertType (line 964) | convertType(_context, type, node) {
  method convert (line 996) | convert(context, node) {
  method convertType (line 1004) | convertType(context, type) {
  method convert (line 1017) | convert() {
  method convertType (line 1020) | convertType() {
  method convert (line 1027) | convert(context, node) {
  method convertType (line 1031) | convertType(context, type, node) {
  method convert (line 1087) | convert(context, node) {
  method convertType (line 1093) | convertType(context, type, node) {
  method convert (line 1127) | convert(context, node) {
  method convertType (line 1132) | convertType(context, type) {
  method convert (line 1143) | convert(context, node) {
  method convert (line 1151) | convert(context, node) {
  method convert (line 1163) | convert(context, node) {
  method convert (line 1172) | convert() {
  function requestBugReport (line 1179) | function requestBugReport(context: Context, nodeOrType: ts.Node | ts.Typ...
  function resolveReference (line 1196) | function resolveReference(type: ts.Type) {
  function kindToModifier (line 1203) | function kindToModifier(
  function sortUnion (line 1223) | function sortUnion(types: SomeType[]) {
  function normalizeUnion (line 1250) | function normalizeUnion(types: SomeType[]) {
  function convertTypeInlined (line 1279) | function convertTypeInlined(context: Context, type: ts.Type): SomeType {

FILE: src/lib/converter/utils/nodes.ts
  function isNamedNode (line 3) | function isNamedNode(node: unknown): node is {
  function getHeritageTypes (line 13) | function getHeritageTypes(
  function isObjectType (line 37) | function isObjectType(type: ts.Type): type is ts.ObjectType {
  function isTypeReference (line 41) | function isTypeReference(type: ts.Type): type is ts.TypeReference {

FILE: src/lib/converter/utils/reflections.ts
  function removeUndefined (line 3) | function removeUndefined(type: SomeType): SomeType {

FILE: src/lib/converter/utils/repository.ts
  constant TEN_MEGABYTES (line 7) | const TEN_MEGABYTES = 1024 * 10000;
  function git (line 9) | function git(...args: string[]) {
  function gitIsInstalled (line 18) | function gitIsInstalled() {
  type Repository (line 23) | interface Repository {
  class AssumedRepository (line 28) | class AssumedRepository implements Repository {
    method constructor (line 29) | constructor(
    method getURL (line 35) | getURL(fileName: string, line: number): string | undefined {
  class GitRepository (line 53) | class GitRepository implements Repository {
    method constructor (line 73) | constructor(path: string, gitRevision: string, urlTemplate: string) {
    method getURL (line 94) | getURL(fileName: string, line: number): string | undefined {
    method tryCreateRepository (line 121) | static tryCreateRepository(
  class RepositoryManager (line 179) | class RepositoryManager {
    method constructor (line 183) | constructor(
    method getRepository (line 204) | getRepository(fileName: string): Repository | undefined {
    method getRepositoryFolder (line 211) | private getRepositoryFolder(dir: string): Repository | undefined {
  function guessSourceUrlTemplate (line 265) | function guessSourceUrlTemplate(remotes: string[]): string | undefined {

FILE: src/lib/converter/utils/symbols.ts
  function resolveAliasedSymbol (line 3) | function resolveAliasedSymbol(

FILE: src/lib/debug/reflectionLifetimes.ts
  function debugReflectionLifetimes (line 6) | function debugReflectionLifetimes(app: Application, kindFilter = Reflect...
  function load (line 31) | function load(app: Application) {

FILE: src/lib/debug/rendererUrls.ts
  function makeSerializer (line 9) | function makeSerializer(router: Router) {
  function debugRendererUrls (line 67) | function debugRendererUrls(
  function load (line 97) | function load(app: Application) {

FILE: src/lib/internationalization/internationalization.ts
  type TranslatableStrings (line 44) | interface TranslatableStrings extends BuiltinTranslatableStringArgs {}
  type TranslationProxy (line 49) | type TranslationProxy = {
  function loadTranslations (line 60) | function loadTranslations(lang: string): Record<string, string> {
  function getNativelySupportedLanguages (line 76) | function getNativelySupportedLanguages(): string[] {
  class Internationalization (line 84) | class Internationalization {
    method constructor (line 88) | constructor() {
    method setLocale (line 92) | setLocale(locale: string): void {
    method addTranslations (line 101) | addTranslations(locale: string, translations: Record<string, string>):...
    method hasTranslations (line 108) | hasTranslations(locale: string) {
    method getSupportedLanguages (line 112) | getSupportedLanguages(): string[] {

FILE: src/lib/internationalization/translatable.ts
  type BuiltinTranslatableStringArgs (line 4) | type BuiltinTranslatableStringArgs =
  type BuildTranslationArguments (line 18) | type BuildTranslationArguments<
  type BuiltinTranslatableStringConstraints (line 24) | type BuiltinTranslatableStringConstraints = {
  type BuildConstraint (line 28) | type BuildConstraint<
  type TranslationConstraint (line 37) | type TranslationConstraint = [

FILE: src/lib/models/Comment.ts
  type CommentDisplayPart (line 13) | type CommentDisplayPart =
  type InlineTagDisplayPart (line 36) | interface InlineTagDisplayPart {
  type RelativeLinkDisplayPart (line 56) | interface RelativeLinkDisplayPart {
  class CommentTag (line 79) | class CommentTag {
    method constructor (line 112) | constructor(tag: TagString, text: CommentDisplayPart[]) {
    method similarTo (line 122) | similarTo(other: CommentTag) {
    method clone (line 131) | clone(): CommentTag {
    method toObject (line 145) | toObject(): JSONOutput.CommentTag {
    method fromObject (line 154) | fromObject(de: Deserializer, obj: JSONOutput.CommentTag) {
  class Comment (line 169) | class Comment {
    method combineDisplayParts (line 174) | static combineDisplayParts(
    method cloneDisplayParts (line 200) | static cloneDisplayParts(
    method serializeDisplayParts (line 214) | static serializeDisplayParts(
    method deserializeDisplayParts (line 248) | static deserializeDisplayParts(
    method splitPartsToHeaderAndBody (line 346) | static splitPartsToHeaderAndBody(parts: readonly CommentDisplayPart[]): {
    method constructor (line 447) | constructor(
    method getShortSummary (line 462) | getShortSummary(useFirstParagraph: boolean): readonly CommentDisplayPa...
    method similarTo (line 508) | similarTo(other: Comment): boolean {
    method clone (line 535) | clone() {
    method isEmpty (line 551) | isEmpty() {
    method hasVisibleComponent (line 560) | hasVisibleComponent(notRenderedTags?: readonly TagString[]): boolean {
    method hasModifier (line 578) | hasModifier(tagName: TagString): boolean {
    method removeModifier (line 582) | removeModifier(tagName: TagString) {
    method getTag (line 592) | getTag(tagName: TagString): CommentTag | undefined {
    method getTags (line 599) | getTags(tagName: TagString): CommentTag[] {
    method getIdentifiedTag (line 603) | getIdentifiedTag(identifier: string, tagName: TagString) {
    method removeTags (line 613) | removeTags(tagName: TagString) {
    method toObject (line 617) | toObject(serializer: Serializer): JSONOutput.Comment {
    method fromObject (line 628) | fromObject(de: Deserializer, obj: JSONOutput.Comment) {
  function extractLabelTag (line 640) | function extractLabelTag(comment: Comment) {

FILE: src/lib/models/ContainerReflection.ts
  method getChildrenByKind (line 58) | getChildrenByKind(kind: ReflectionKind): DeclarationReflection[] {
  method addChild (line 62) | addChild(child: Reflection) {
  method removeChild (line 97) | removeChild(child: DeclarationReflection | DocumentReflection) {
  method isContainer (line 116) | override isContainer(): this is ContainerReflection {
  method traverse (line 120) | override traverse(callback: TraverseCallback) {
  method toObject (line 134) | override toObject(serializer: Serializer): JSONOutput.ContainerReflection {
  method fromObject (line 149) | override fromObject(de: Deserializer, obj: JSONOutput.ContainerReflectio...

FILE: src/lib/models/DeclarationReflection.ts
  type DeclarationHierarchy (line 18) | interface DeclarationHierarchy {
  class DeclarationReflection (line 42) | class DeclarationReflection extends ContainerReflection {
    method isDeclaration (line 164) | override isDeclaration(): this is DeclarationReflection {
    method hasGetterOrSetter (line 168) | override hasGetterOrSetter(): boolean {
    method getAllSignatures (line 172) | getAllSignatures(): SignatureReflection[] {
    method getNonIndexSignatures (line 191) | getNonIndexSignatures(): SignatureReflection[] {
    method getProperties (line 199) | getProperties(): DeclarationReflection[] {
    method getChildOrTypePropertyByName (line 210) | getChildOrTypePropertyByName(
    method traverse (line 236) | override traverse(callback: TraverseCallback) {
    method toString (line 292) | override toString(): string {
    method toObject (line 309) | override toObject(
    method fromObject (line 338) | override fromObject(

FILE: src/lib/models/DocumentReflection.ts
  class DocumentReflection (line 9) | class DocumentReflection extends Reflection {
    method constructor (line 33) | constructor(
    method addChild (line 49) | addChild(child: DocumentReflection) {
    method isDocument (line 54) | override isDocument(): this is DocumentReflection {
    method traverse (line 58) | override traverse(callback: TraverseCallback): void {
    method toObject (line 66) | override toObject(serializer: Serializer): JSONOutput.DocumentReflecti...
    method fromObject (line 77) | override fromObject(de: Deserializer, obj: JSONOutput.DocumentReflecti...

FILE: src/lib/models/FileRegistry.ts
  type FileId (line 6) | type FileId = number & { __mediaIdBrand: never };
  class FileRegistry (line 8) | class FileRegistry {
    method registerAbsolute (line 22) | registerAbsolute(absolute: NormalizedPath): {
    method registerReflection (line 47) | registerReflection(absolute: NormalizedPath, reflection: Reflection) {
    method registerReflectionPath (line 57) | registerReflectionPath(absolute: NormalizedPath, reflection: Reflectio...
    method getReflectionPath (line 62) | getReflectionPath(reflection: Reflection): string | undefined {
    method register (line 66) | register(
    method removeReflection (line 75) | removeReflection(reflection: Reflection): void {
    method resolve (line 83) | resolve(
    method resolvePath (line 94) | resolvePath(id: FileId): string | undefined {
    method getName (line 98) | getName(id: FileId): string | undefined {
    method getNameToAbsoluteMap (line 124) | getNameToAbsoluteMap(): ReadonlyMap<string, string> {
    method toObject (line 132) | toObject(ser: Serializer): JSONOutput.FileRegistry {
    method fromObject (line 157) | fromObject(de: Deserializer, obj: JSONOutput.FileRegistry): void {

FILE: src/lib/models/ParameterReflection.ts
  class ParameterReflection (line 10) | class ParameterReflection extends Reflection {
    method traverse (line 19) | override traverse(callback: TraverseCallback) {
    method isParameter (line 32) | override isParameter(): this is ParameterReflection {
    method toString (line 39) | override toString() {
    method toObject (line 45) | override toObject(serializer: Serializer): JSONOutput.ParameterReflect...
    method fromObject (line 54) | override fromObject(

FILE: src/lib/models/ProjectReflection.ts
  constant JSON_SCHEMA_VERSION (line 26) | const JSON_SCHEMA_VERSION = "2.0";
  class ProjectReflection (line 35) | class ProjectReflection extends ContainerReflection {
    method constructor (line 89) | constructor(name: string, registry: FileRegistry) {
    method isProject (line 98) | override isProject(): this is ProjectReflection {
    method getReflectionsByKind (line 108) | getReflectionsByKind(kind: ReflectionKind): Reflection[] {
    method registerReflection (line 119) | registerReflection(
    method removeTypeReflections (line 147) | removeTypeReflections(type: Type | undefined) {
    method removeReflection (line 162) | removeReflection(reflection: Reflection) {
    method mergeReflections (line 244) | mergeReflections(
    method _removeReflection (line 281) | private _removeReflection(reflection: Reflection) {
    method getReflectionById (line 333) | getReflectionById(id: number): Reflection | undefined {
    method getReflectionFromSymbolId (line 342) | getReflectionFromSymbolId(
    method getReflectionsFromSymbolId (line 349) | getReflectionsFromSymbolId(symbolId: ReflectionSymbolId) {
    method getSymbolIdFromReflection (line 361) | getSymbolIdFromReflection(reflection: Reflection) {
    method registerSymbolId (line 366) | registerSymbolId(reflection: Reflection, id: ReflectionSymbolId) {
    method symbolIdHasBeenRemoved (line 382) | symbolIdHasBeenRemoved(id: ReflectionSymbolId) {
    method getReferenceGraph (line 386) | private getReferenceGraph(): Map<number, number[]> {
    method toObject (line 405) | override toObject(serializer: Serializer): JSONOutput.ProjectReflection {
    method fromObject (line 423) | override fromObject(

FILE: src/lib/models/ReferenceReflection.ts
  class ReferenceReflection (line 20) | class ReferenceReflection extends DeclarationReflection {
    method constructor (line 29) | constructor(name: string, reflection: Reflection, parent?: Reflection) {
    method tryGetTargetReflection (line 38) | tryGetTargetReflection(): Reflection | undefined {
    method tryGetTargetReflectionDeep (line 46) | tryGetTargetReflectionDeep(): Reflection | undefined {
    method getTargetReflection (line 58) | getTargetReflection(): Reflection {
    method getTargetReflectionDeep (line 70) | getTargetReflectionDeep(): Reflection {
    method getChildByName (line 78) | override getChildByName(arg: string | string[]): Reflection | undefined {
    method toObject (line 82) | override toObject(serializer: Serializer): JSONOutput.ReferenceReflect...
    method fromObject (line 90) | override fromObject(

FILE: src/lib/models/Reflection.ts
  constant REFLECTION_ID (line 19) | let REFLECTION_ID = 0;
  function resetReflectionID (line 26) | function resetReflectionID() {
  type ReflectionFlag (line 30) | enum ReflectionFlag {
  class ReflectionFlags (line 58) | class ReflectionFlags {
    method hasFlag (line 61) | hasFlag(flag: ReflectionFlag) {
    method isPrivate (line 68) | get isPrivate(): boolean {
    method isProtected (line 75) | get isProtected(): boolean {
    method isPublic (line 82) | get isPublic(): boolean {
    method isStatic (line 89) | get isStatic(): boolean {
    method isExternal (line 96) | get isExternal(): boolean {
    method isOptional (line 105) | get isOptional(): boolean {
    method isRest (line 112) | get isRest(): boolean {
    method isAbstract (line 116) | get isAbstract(): boolean {
    method isConst (line 120) | get isConst() {
    method isReadonly (line 124) | get isReadonly() {
    method isInherited (line 128) | get isInherited() {
    method setFlag (line 132) | setFlag(flag: ReflectionFlag, set: boolean) {
    method flagString (line 160) | static flagString(flag: ReflectionFlag) {
    method getFlagStrings (line 189) | getFlagStrings() {
    method setSingleFlag (line 199) | private setSingleFlag(flag: ReflectionFlag, set: boolean) {
    method toObject (line 221) | toObject(): JSONOutput.ReflectionFlags {
    method fromObject (line 229) | fromObject(obj: JSONOutput.ReflectionFlags) {
  type TraverseProperty (line 242) | enum TraverseProperty {
  type TraverseCallback (line 254) | interface TraverseCallback {
  type ReflectionVisitor (line 265) | type ReflectionVisitor = {
  type ReflectionId (line 273) | type ReflectionId = number & { __reflectionIdBrand: never };
  method constructor (line 324) | constructor(name: string, kind: ReflectionKind, parent?: Reflection) {
  method kindOf (line 340) | kindOf(kind: ReflectionKind | ReflectionKind[]): boolean {
  method getFullName (line 356) | getFullName(separator = "."): string {
  method getFriendlyFullName (line 368) | getFriendlyFullName(): string {
  method setFlag (line 390) | setFlag(flag: ReflectionFlag, value = true) {
  method hasComment (line 399) | hasComment(notRenderedTags?: readonly TagString[]): boolean {
  method hasGetterOrSetter (line 403) | hasGetterOrSetter(): boolean {
  method getChildByName (line 413) | getChildByName(arg: string | string[]): Reflection | undefined {
  method isProject (line 438) | isProject(): this is ProjectReflection {
  method isDeclaration (line 441) | isDeclaration(): this is DeclarationReflection {
  method isSignature (line 444) | isSignature(): this is SignatureReflection {
  method isTypeParameter (line 447) | isTypeParameter(): this is TypeParameterReflection {
  method isParameter (line 450) | isParameter(): this is ParameterReflection {
  method isDocument (line 453) | isDocument(): this is DocumentReflection {
  method isReference (line 456) | isReference(): this is ReferenceReflection {
  method isContainer (line 459) | isContainer(): this is ContainerReflection {
  method isDeprecated (line 466) | isDeprecated(): boolean {
  method visit (line 499) | visit(visitor: ReflectionVisitor) {
  method toString (line 506) | toString(): string {
  method toStringHierarchy (line 517) | toStringHierarchy(indent = "") {
  method toObject (line 529) | toObject(serializer: Serializer): JSONOutput.Reflection {
  method fromObject (line 542) | fromObject(de: Deserializer, obj: JSONOutput.Reflection) {

FILE: src/lib/models/ReflectionCategory.ts
  class ReflectionCategory (line 12) | class ReflectionCategory {
    method constructor (line 33) | constructor(title: string) {
    method toObject (line 37) | toObject(): JSONOutput.ReflectionCategory {
    method fromObject (line 49) | fromObject(de: Deserializer, obj: JSONOutput.ReflectionCategory) {

FILE: src/lib/models/ReflectionGroup.ts
  class ReflectionGroup (line 13) | class ReflectionGroup {
    method constructor (line 40) | constructor(
    method toObject (line 47) | toObject(serializer: Serializer): JSONOutput.ReflectionGroup {
    method fromObject (line 60) | fromObject(de: Deserializer, obj: JSONOutput.ReflectionGroup) {

FILE: src/lib/models/ReflectionSymbolId.ts
  type ReflectionSymbolIdString (line 8) | type ReflectionSymbolIdString = string & {
  class ReflectionSymbolId (line 17) | class ReflectionSymbolId {
    method constructor (line 69) | constructor(json: JSONOutput.ReflectionSymbolId) {
    method getStableKey (line 75) | getStableKey(): ReflectionSymbolIdString {
    method toDeclarationReference (line 83) | toDeclarationReference(): DeclarationReference {
    method toObject (line 98) | toObject(): JSONOutput.ReflectionSymbolId {

FILE: src/lib/models/SignatureReflection.ts
  class SignatureReflection (line 13) | class SignatureReflection extends Reflection {
    method constructor (line 18) | constructor(
    method traverse (line 67) | override traverse(callback: TraverseCallback) {
    method isSignature (line 92) | override isSignature(): this is SignatureReflection {
    method toString (line 99) | override toString(): string {
    method toObject (line 116) | override toObject(serializer: Serializer): JSONOutput.SignatureReflect...
    method fromObject (line 130) | override fromObject(

FILE: src/lib/models/SourceReference.ts
  class SourceReference (line 8) | class SourceReference {
    method constructor (line 35) | constructor(fileName: string, line: number, character: number) {
    method equals (line 42) | equals(other: SourceReference) {
    method toObject (line 50) | toObject(): JSONOutput.SourceReference {
    method fromObject (line 59) | fromObject(_de: Deserializer, obj: JSONOutput.SourceReference) {

FILE: src/lib/models/TypeParameterReflection.ts
  type VarianceModifier (line 17) | type VarianceModifier = (typeof VarianceModifier)[keyof typeof VarianceM...
  class TypeParameterReflection (line 22) | class TypeParameterReflection extends Reflection {
    method constructor (line 33) | constructor(
    method isTypeParameter (line 42) | override isTypeParameter(): this is TypeParameterReflection {
    method toObject (line 46) | override toObject(
    method fromObject (line 58) | override fromObject(
    method traverse (line 68) | override traverse(_callback: TraverseCallback): void {

FILE: src/lib/models/kind.ts
  type ReflectionKind (line 7) | enum ReflectionKind {
  type KindString (line 39) | type KindString = EnumKeys<typeof ReflectionKind>;
  function singularString (line 130) | function singularString(kind: ReflectionKind) {
  function pluralString (line 183) | function pluralString(kind: ReflectionKind): string {
  function classString (line 236) | function classString(kind: ReflectionKind): string {

FILE: src/lib/models/types.ts
  method toString (line 25) | toString(): string {
  method visit (line 37) | visit(
  method stringify (line 44) | stringify(context: TypeContext) {
  method fromObject (line 54) | fromObject(_de: Deserializer, _obj: JSONOutput.SomeType) {}
  method estimatePrintWidth (line 67) | estimatePrintWidth(): number {
  type TypeKindMap (line 73) | interface TypeKindMap {
  type TypeVisitor (line 96) | type TypeVisitor<T = void, A extends any[] = []> = {
  function makeRecursiveVisitor (line 100) | function makeRecursiveVisitor(
  type TypeKind (line 195) | type TypeKind = keyof TypeKindMap;
  type SomeType (line 198) | type SomeType = TypeKindMap[keyof TypeKindMap];
  type TypeContext (line 230) | type TypeContext = (typeof TypeContext)[keyof typeof TypeContext];
  class ArrayType (line 240) | class ArrayType extends Type {
    method constructor (line 246) | constructor(public elementType: SomeType) {
    method getTypeString (line 250) | protected override getTypeString() {
    method needsParenthesis (line 254) | override needsParenthesis(): boolean {
    method toObject (line 258) | override toObject(serializer: Serializer): JSONOutput.ArrayType {
  class ConditionalType (line 274) | class ConditionalType extends Type {
    method constructor (line 277) | constructor(
    method getTypeString (line 286) | protected override getTypeString() {
    method needsParenthesis (line 298) | override needsParenthesis(context: TypeContext): boolean {
    method toObject (line 328) | override toObject(serializer: Serializer): JSONOutput.ConditionalType {
  class IndexedAccessType (line 343) | class IndexedAccessType extends Type {
    method constructor (line 346) | constructor(
    method getTypeString (line 353) | protected override getTypeString() {
    method needsParenthesis (line 362) | override needsParenthesis(): boolean {
    method toObject (line 366) | override toObject(serializer: Serializer): JSONOutput.IndexedAccessType {
  class InferredType (line 383) | class InferredType extends Type {
    method constructor (line 386) | constructor(
    method getTypeString (line 393) | protected override getTypeString() {
    method needsParenthesis (line 404) | override needsParenthesis(context: TypeContext): boolean {
    method toObject (line 434) | override toObject(serializer: Serializer): JSONOutput.InferredType {
  class IntersectionType (line 451) | class IntersectionType extends Type {
    method constructor (line 454) | constructor(public types: SomeType[]) {
    method getTypeString (line 458) | protected override getTypeString() {
    method needsParenthesis (line 464) | override needsParenthesis(context: TypeContext): boolean {
    method toObject (line 494) | override toObject(serializer: Serializer): JSONOutput.IntersectionType {
  class IntrinsicType (line 510) | class IntrinsicType extends Type {
    method constructor (line 513) | constructor(public name: string) {
    method getTypeString (line 517) | protected override getTypeString() {
    method toObject (line 521) | override toObject(): JSONOutput.IntrinsicType {
    method needsParenthesis (line 528) | override needsParenthesis(): boolean {
  class LiteralType (line 542) | class LiteralType extends Type {
    method constructor (line 545) | constructor(public value: string | number | boolean | null | bigint) {
    method getTypeString (line 552) | protected override getTypeString(): string {
    method needsParenthesis (line 559) | override needsParenthesis(): boolean {
    method toObject (line 563) | override toObject(): JSONOutput.LiteralType {
  class MappedType (line 589) | class MappedType extends Type {
    method constructor (line 592) | constructor(
    method getTypeString (line 603) | protected override getTypeString(): string {
    method needsParenthesis (line 639) | override needsParenthesis(): boolean {
    method toObject (line 643) | override toObject(serializer: Serializer): JSONOutput.MappedType {
  class OptionalType (line 664) | class OptionalType extends Type {
    method constructor (line 667) | constructor(public elementType: SomeType) {
    method getTypeString (line 671) | protected override getTypeString() {
    method needsParenthesis (line 675) | override needsParenthesis(): boolean {
    method toObject (line 679) | override toObject(serializer: Serializer): JSONOutput.OptionalType {
  class PredicateType (line 696) | class PredicateType extends Type {
    method constructor (line 709) | constructor(
    method getTypeString (line 720) | protected override getTypeString() {
    method needsParenthesis (line 732) | override needsParenthesis(): boolean {
    method toObject (line 736) | override toObject(serializer: Serializer): JSONOutput.PredicateType {
  class QueryType (line 754) | class QueryType extends Type {
    method constructor (line 757) | constructor(public queryType: ReferenceType) {
    method getTypeString (line 761) | protected override getTypeString() {
    method needsParenthesis (line 775) | override needsParenthesis(): boolean {
    method toObject (line 779) | override toObject(serializer: Serializer): JSONOutput.QueryType {
  class ReferenceType (line 795) | class ReferenceType extends Type {
    method reflection (line 814) | get reflection(): Reflection | undefined {
    method symbolId (line 854) | get symbolId(): ReflectionSymbolId | undefined {
    method isIntentionallyBroken (line 864) | isIntentionallyBroken(): boolean {
    method toDeclarationReference (line 877) | toDeclarationReference(): DeclarationReference {
    method constructor (line 923) | private constructor(
    method createUnresolvedReference (line 940) | static createUnresolvedReference(
    method createResolvedReference (line 949) | static createResolvedReference(
    method createBrokenReference (line 963) | static createBrokenReference(name: string, project: ProjectReflection,...
    method getTypeString (line 969) | protected override getTypeString() {
    method needsParenthesis (line 984) | override needsParenthesis(): boolean {
    method toObject (line 988) | override toObject(serializer: Serializer): JSONOutput.ReferenceType {
    method fromObject (line 1038) | override fromObject(de: Deserializer, obj: JSONOutput.ReferenceType): ...
  class ReflectionType (line 1097) | class ReflectionType extends Type {
    method constructor (line 1100) | constructor(public declaration: DeclarationReflection) {
    method getTypeString (line 1104) | protected override getTypeString() {
    method needsParenthesis (line 1129) | override needsParenthesis(where: TypeContext): boolean {
    method toObject (line 1141) | override toObject(serializer: Serializer): JSONOutput.ReflectionType {
  class RestType (line 1157) | class RestType extends Type {
    method constructor (line 1160) | constructor(public elementType: SomeType) {
    method getTypeString (line 1164) | protected override getTypeString() {
    method needsParenthesis (line 1168) | override needsParenthesis(): boolean {
    method toObject (line 1172) | override toObject(serializer: Serializer): JSONOutput.RestType {
  class TemplateLiteralType (line 1187) | class TemplateLiteralType extends Type {
    method constructor (line 1190) | constructor(
    method getTypeString (line 1197) | protected override getTypeString() {
    method needsParenthesis (line 1213) | override needsParenthesis(): boolean {
    method toObject (line 1217) | override toObject(serializer: Serializer): JSONOutput.TemplateLiteralT...
  class TupleType (line 1237) | class TupleType extends Type {
    method constructor (line 1243) | constructor(public elements: SomeType[]) {
    method getTypeString (line 1247) | protected override getTypeString() {
    method needsParenthesis (line 1257) | override needsParenthesis(): boolean {
    method toObject (line 1261) | override toObject(serializer: Serializer): JSONOutput.TupleType {
  class NamedTupleMember (line 1277) | class NamedTupleMember extends Type {
    method constructor (line 1280) | constructor(
    method getTypeString (line 1291) | protected override getTypeString() {
    method needsParenthesis (line 1295) | override needsParenthesis(): boolean {
    method toObject (line 1299) | override toObject(serializer: Serializer): JSONOutput.NamedTupleMember...
  class TypeOperatorType (line 1318) | class TypeOperatorType extends Type {
    method constructor (line 1321) | constructor(
    method getTypeString (line 1328) | protected override getTypeString() {
    method needsParenthesis (line 1336) | override needsParenthesis(context: TypeContext): boolean {
    method toObject (line 1366) | override toObject(serializer: Serializer): JSONOutput.TypeOperatorType {
  class UnionType (line 1383) | class UnionType extends Type {
    method constructor (line 1394) | constructor(public types: SomeType[]) {
    method getTypeString (line 1398) | protected override getTypeString(): string {
    method needsParenthesis (line 1404) | override needsParenthesis(context: TypeContext): boolean {
    method fromObject (line 1434) | override fromObject(de: Deserializer, obj: JSONOutput.UnionType): void {
    method toObject (line 1440) | override toObject(serializer: Serializer): JSONOutput.UnionType {
  class UnknownType (line 1453) | class UnknownType extends Type {
    method constructor (line 1461) | constructor(name: string) {
    method getTypeString (line 1466) | protected override getTypeString() {
    method needsParenthesis (line 1474) | override needsParenthesis(context: TypeContext): boolean {
    method toObject (line 1478) | override toObject(): JSONOutput.UnknownType {
  function propertySep (line 1486) | function propertySep(refl: Reflection) {
  function typeStr (line 1490) | function typeStr(type: Type | undefined) {
  function sigStr (line 1494) | function sigStr(sig: SignatureReflection, sep: string, brackets = "()") {

FILE: src/lib/models/utils.ts
  function splitUnquotedString (line 1) | function splitUnquotedString(

FILE: src/lib/models/variant.ts
  type ReflectionVariant (line 13) | interface ReflectionVariant {
  type SomeReflection (line 23) | type SomeReflection = ReflectionVariant[keyof ReflectionVariant];

FILE: src/lib/output/components.ts
  method hostedBaseUrl (line 41) | protected get hostedBaseUrl() {
  method constructor (line 49) | constructor(owner: Renderer) {
  method getRelativeUrl (line 64) | public getRelativeUrl(absolute: string): string {
  method onBeginRenderer (line 88) | protected onBeginRenderer(event: RendererEvent) {
  method onBeginPage (line 97) | protected onBeginPage(page: PageEvent) {

FILE: src/lib/output/events.ts
  class RendererEvent (line 18) | class RendererEvent {
    method constructor (line 46) | constructor(
  type PageHeading (line 57) | interface PageHeading {
  class PageEvent (line 73) | class PageEvent<out Model extends RouterTarget = RouterTarget> {
    method startNewSection (line 126) | startNewSection(title: string) {
    method constructor (line 146) | constructor(model: Model) {
    method isReflectionEvent (line 150) | isReflectionEvent(): this is PageEvent<Reflection> {
  class MarkdownEvent (line 160) | class MarkdownEvent {
    method constructor (line 182) | constructor(page: PageEvent, originalText: string, parsedText: string) {
  class IndexEvent (line 192) | class IndexEvent {
    method removeResult (line 236) | removeResult(index: number) {
    method constructor (line 241) | constructor(

FILE: src/lib/output/formatter.tsx
  constant INDENT (line 19) | const INDENT = "\u00A0\u00A0\u00A0\u00A0";
  type FormatterNode (line 21) | type FormatterNode =
  function space (line 38) | function space() {
  function textNode (line 41) | function textNode(content: string): FormatterNode {
  function simpleElement (line 44) | function simpleElement(element: JSX.Element): FormatterNode {
  function line (line 53) | function line(): FormatterNode {
  function spaceOrLine (line 56) | function spaceOrLine(): FormatterNode {
  function indent (line 59) | function indent(content: FormatterNode[]): FormatterNode {
  function group (line 62) | function group(id: number, content: FormatterNode[]): FormatterNode {
  function nodes (line 65) | function nodes(...content: FormatterNode[]): FormatterNode {
  function ifWrap (line 68) | function ifWrap(
  function join (line 76) | function join<T>(
  function nodeWidth (line 93) | function nodeWidth(node: FormatterNode, wrapped: Set<number>): number {
  type Wrap (line 114) | enum Wrap {
  class FormattedCodeGenerator (line 122) | class FormattedCodeGenerator {
    method constructor (line 133) | constructor(maxWidth: number = 80, startWidth = 0) {
    method forceWrap (line 138) | forceWrap(wrapped: Set<number>) {
    method toElement (line 144) | toElement(): JSX.Element {
    method node (line 148) | node(node: FormatterNode, wrap: Wrap): void {
    method text (line 221) | private text(value: string | JSX.Element, chars: number) {
    method newLine (line 226) | private newLine() {
  method array (line 241) | array(type, builder) {
  method conditional (line 247) | conditional(type, builder) {
  method indexedAccess (line 267) | indexedAccess(type, builder) {
  method inferred (line 311) | inferred(type, builder) {
  method intersection (line 340) | intersection(type, builder) {
  method intrinsic (line 353) | intrinsic(type) {
  method literal (line 358) | literal(type) {
  method mapped (line 363) | mapped(type, builder) {
  method namedTupleMember (line 440) | namedTupleMember(type, builder) {
  method optional (line 450) | optional(type, builder) {
  method predicate (line 456) | predicate(type, builder) {
  method query (line 482) | query(type, builder) {
  method reference (line 489) | reference(type, builder) {
  method reflection (line 603) | reflection(type, builder, options) {
  method rest (line 606) | rest(type, builder) {
  method templateLiteral (line 612) | templateLiteral(type, builder) {
  method tuple (line 647) | tuple(type, builder) {
  method typeOperator (line 673) | typeOperator(type, builder) {
  method union (line 682) | union(type, builder) {
  method unknown (line 701) | unknown(type) {
  class FormattedCodeBuilder (line 709) | class FormattedCodeBuilder {
    method constructor (line 713) | constructor(
    method urlTo (line 718) | urlTo(refl: Reflection) {
    method newId (line 722) | newId() {
    method type (line 726) | type(
    method reflection (line 748) | reflection(
    method typeAlias (line 839) | typeAlias(item: DeclarationReflection) {
    method interface (line 852) | interface(item: DeclarationReflection) {
    method member (line 863) | member(
    method signature (line 907) | signature(
    method typeParameters (line 980) | private typeParameters(
    method typeParameter (line 1012) | private typeParameter(param: TypeParameterReflection) {
    method parameters (line 1078) | private parameters(sig: SignatureReflection, id: number): FormatterNod...
    method parameter (line 1109) | private parameter(param: ParameterReflection) {
    method propertyName (line 1138) | private propertyName(

FILE: src/lib/output/output.ts
  class Outputs (line 7) | class Outputs {
    method constructor (line 15) | constructor(readonly application: Application) {}
    method addOutput (line 17) | addOutput(
    method setDefaultOutputName (line 27) | setDefaultOutputName(name: string) {
    method getOutputSpecs (line 31) | getOutputSpecs(): OutputSpecification[] {
    method writeOutputs (line 76) | async writeOutputs(project: ProjectReflection): Promise<void> {
    method writeOutput (line 84) | async writeOutput(output: OutputSpecification, project: ProjectReflect...

FILE: src/lib/output/plugins/AssetsPlugin.ts
  class AssetsPlugin (line 18) | class AssetsPlugin extends RendererComponent {
    method constructor (line 28) | constructor(owner: Renderer) {
    method getTranslatedStrings (line 34) | getTranslatedStrings() {
    method onRenderBegin (line 57) | private onRenderBegin(event: RendererEvent) {
    method onRenderEnd (line 102) | private onRenderEnd(event: RendererEvent) {

FILE: src/lib/output/plugins/HierarchyPlugin.ts
  type JsonHierarchyElement (line 12) | interface JsonHierarchyElement {
  type JsonHierarchy (line 21) | interface JsonHierarchy {
  class HierarchyPlugin (line 27) | class HierarchyPlugin extends RendererComponent {
    method constructor (line 28) | constructor(renderer: Renderer) {
    method onRendererBegin (line 33) | private onRendererBegin(_event: RendererEvent) {
    method buildHierarchy (line 41) | private async buildHierarchy(event: RendererEvent) {

FILE: src/lib/output/plugins/IconsPlugin.tsx
  constant ICONS_JS (line 9) | const ICONS_JS = `
  class IconsPlugin (line 34) | class IconsPlugin extends RendererComponent {
    method constructor (line 37) | constructor(owner: Renderer) {
    method onBeginRender (line 42) | private onBeginRender(_event: RendererEvent) {
    method onRenderEnd (line 48) | private async onRenderEnd(event: RendererEvent) {

FILE: src/lib/output/plugins/JavascriptIndexPlugin.ts
  type SearchDocument (line 18) | interface SearchDocument {
  class JavascriptIndexPlugin (line 32) | class JavascriptIndexPlugin extends RendererComponent {
    method constructor (line 51) | constructor(owner: Renderer) {
    method onRendererBegin (line 56) | private onRendererBegin(_event: RendererEvent) {
    method buildSearchIndex (line 67) | private async buildSearchIndex(event: RendererEvent) {
    method getBoost (line 179) | private getBoost(refl: DeclarationReflection | DocumentReflection): nu...
    method getCommentSearchText (line 200) | private getCommentSearchText(reflection: Reflection) {
    method getDocumentSearchText (line 229) | private getDocumentSearchText(reflection: Reflection) {

FILE: src/lib/output/plugins/NavigationPlugin.ts
  class NavigationPlugin (line 9) | class NavigationPlugin extends RendererComponent {
    method constructor (line 10) | constructor(owner: Renderer) {
    method onRendererBegin (line 15) | private onRendererBegin(_event: RendererEvent) {
    method buildNavigationIndex (line 22) | private async buildNavigationIndex(event: RendererEvent) {

FILE: src/lib/output/plugins/SitemapPlugin.ts
  class SitemapPlugin (line 9) | class SitemapPlugin extends RendererComponent {
    method hostedBaseUrl (line 10) | private get hostedBaseUrl() {
    method constructor (line 15) | constructor(owner: Renderer) {
    method onRendererBegin (line 20) | private onRendererBegin(_event: RendererEvent) {
    method buildSitemap (line 42) | private async buildSitemap(event: RendererEvent) {
  type XmlElementData (line 78) | interface XmlElementData {
  function stringifyXml (line 84) | function stringifyXml(xml: XmlElementData, indent = 0) {

FILE: src/lib/output/renderer.ts
  type RendererHooks (line 47) | interface RendererHooks {
  type RendererEvents (line 126) | interface RendererEvents {
  class Renderer (line 168) | class Renderer extends AbstractComponent<Application, RendererEvents> {
    method constructor (line 265) | constructor(owner: Application) {
    method defineTheme (line 284) | defineTheme(name: string, theme: new (renderer: Renderer) => Theme) {
    method removeTheme (line 292) | removeTheme(name: string) {
    method defineRouter (line 301) | defineRouter(name: string, router: new (app: Application) => Router) {
    method removeRouter (line 309) | removeRouter(name: string) {
    method render (line 319) | async render(
    method runPreRenderJobs (line 360) | private async runPreRenderJobs(output: RendererEvent) {
    method renderDocument (line 378) | private renderDocument(outputDirectory: string, page: PageDefinition, ...
    method prepareRouter (line 403) | private prepareRouter(): boolean {
    method prepareTheme (line 422) | private prepareTheme(): boolean {
    method prepareOutputDirectory (line 448) | private async prepareOutputDirectory(directory: string): Promise<boole...

FILE: src/lib/output/router.ts
  type PageKind (line 23) | type PageKind = (typeof PageKind)[keyof typeof PageKind] | string & {};
  type RouterTarget (line 30) | type RouterTarget = {
  type PageDefinition (line 35) | interface PageDefinition<out Model extends RouterTarget = RouterTarget> {
  function getFullName (line 41) | function getFullName(target: RouterTarget): string {
  type Router (line 57) | interface Router {
  method constructor (line 141) | constructor(readonly application: Application) {}
  method buildPages (line 151) | buildPages(project: ProjectReflection): PageDefinition[] {
  method hasUrl (line 195) | hasUrl(target: RouterTarget): boolean {
  method getLinkTargets (line 199) | getLinkTargets(): RouterTarget[] {
  method getAnchor (line 203) | getAnchor(target: RouterTarget): string | undefined {
  method hasOwnDocument (line 212) | hasOwnDocument(target: RouterTarget): boolean {
  method relativeUrl (line 216) | relativeUrl(from: RouterTarget, to: RouterTarget): string {
  method baseRelativeUrl (line 265) | baseRelativeUrl(from: RouterTarget, target: string): string {
  method getFullUrl (line 280) | getFullUrl(target: RouterTarget): string {
  method getSlugger (line 291) | getSlugger(target: RouterTarget): Slugger {
  method getPageKind (line 304) | protected getPageKind(target: RouterTarget): PageKind | undefined {
  method buildChildPages (line 328) | protected buildChildPages(
  method buildAnchors (line 359) | protected buildAnchors(
  method getUrlSafeName (line 423) | protected getUrlSafeName(name: string): string {
  method getFileName (line 427) | protected getFileName(baseName: string): string {
  class KindRouter (line 448) | class KindRouter extends BaseRouter {
    method getIdealBaseName (line 461) | protected override getIdealBaseName(reflection: Reflection): string {
  class KindDirRouter (line 479) | class KindDirRouter extends KindRouter {
    method fixLink (line 480) | private fixLink(link: string) {
    method buildChildPages (line 484) | protected override buildChildPages(
    method getFullUrl (line 492) | override getFullUrl(refl: Reflection): string {
    method relativeUrl (line 496) | override relativeUrl(from: Reflection, to: Reflection): string {
  class StructureRouter (line 505) | class StructureRouter extends BaseRouter {
    method getIdealBaseName (line 506) | protected override getIdealBaseName(reflection: Reflection): string {
  class StructureDirRouter (line 534) | class StructureDirRouter extends StructureRouter {
    method fixLink (line 535) | private fixLink(link: string) {
    method buildChildPages (line 539) | protected override buildChildPages(
    method getFullUrl (line 547) | override getFullUrl(refl: Reflection): string {
    method relativeUrl (line 551) | override relativeUrl(from: Reflection, to: Reflection): string {
  class GroupRouter (line 560) | class GroupRouter extends BaseRouter {
    method getGroup (line 564) | private getGroup(reflection: Reflection) {
    method getIdealBaseName (line 579) | protected override getIdealBaseName(reflection: Reflection): string {
  class CategoryRouter (line 599) | class CategoryRouter extends BaseRouter {
    method getCategory (line 603) | private getCategory(reflection: Reflection) {
    method getIdealBaseName (line 616) | protected override getIdealBaseName(reflection: Reflection): string {

FILE: src/lib/output/theme.ts
  method preRender (line 20) | async preRender(_event: RendererEvent): Promise<void> {}
  method postRender (line 25) | async postRender(_event: RendererEvent): Promise<void> {}

FILE: src/lib/output/themes/MarkedPlugin.tsx
  type Namable (line 21) | type Namable = { name: string; parent?: Namable };
  function getFriendlyFullName (line 22) | function getFriendlyFullName(target: Namable): string {
  class MarkedPlugin (line 43) | class MarkedPlugin extends ContextAwareRendererComponent {
    method constructor (line 74) | constructor(owner: Renderer) {
    method getHighlighted (line 87) | public getHighlighted(text: string, lang?: string): string {
    method parseMarkdown (line 118) | public parseMarkdown(
    method displayPartsToMarkdown (line 136) | private displayPartsToMarkdown(
    method onEnd (line 282) | private onEnd() {
    method onBeginRenderer (line 308) | protected override onBeginRenderer(event: RendererEvent) {
    method getSlugger (line 313) | private getSlugger() {
    method setupParser (line 322) | private setupParser() {
    method onParseMarkdown (line 425) | onParseMarkdown(event: MarkdownEvent) {
  function getTokenTextContent (line 430) | function getTokenTextContent(token: md.Token): string {
  type AlertIconName (line 448) | type AlertIconName = (typeof iconNames)[number];
  function githubAlertMarkdownPlugin (line 457) | function githubAlertMarkdownPlugin(md: MarkdownIt) {
  function checkForAlert (line 475) | function checkForAlert(tokens: md.Token[], start: number, end: number) {

FILE: src/lib/output/themes/default/DefaultTheme.tsx
  type NavigationElement (line 24) | interface NavigationElement {
  type RenderTemplate (line 37) | type RenderTemplate<T> = (data: T) => JSX.Element | string;
  class DefaultTheme (line 39) | class DefaultTheme extends Theme {
    method getRenderContext (line 78) | getRenderContext(pageEvent: PageEvent<Reflection>) {
    method getReflectionClasses (line 98) | getReflectionClasses(reflection: Reflection) {
    method getReflectionIcon (line 106) | getReflectionIcon(reflection: Reflection): keyof this["icons"] & (stri...
    method constructor (line 115) | constructor(renderer: Renderer) {
    method render (line 122) | render(page: PageEvent): string {
    method preRender (line 146) | override async preRender(_event: RendererEvent): Promise<void> {
    method getNavigation (line 161) | getNavigation(project: ProjectReflection): NavigationElement[] {
    method buildNavigation (line 171) | buildNavigation(project: ProjectReflection): NavigationElement[] {
  function getReflectionClasses (line 340) | function getReflectionClasses(reflection: Reflection, filters: Record<st...
  function shouldShowCategories (line 390) | function shouldShowCategories(reflection: Reflection, opts: { includeCat...
  function shouldShowGroups (line 397) | function shouldShowGroups(reflection: Reflection, opts: { includeCategor...

FILE: src/lib/output/themes/default/DefaultThemeRenderContext.ts
  function bind (line 42) | function bind<F, L extends any[], R>(fn: (f: F, ...a: L) => R, first: F) {
  class DefaultThemeRenderContext (line 46) | class DefaultThemeRenderContext {
    method constructor (line 52) | constructor(
    method icons (line 72) | get icons(): Readonly<Icons> {
    method slugger (line 83) | get slugger() {

FILE: src/lib/output/themes/default/Slugger.ts
  class Slugger (line 7) | class Slugger {
    method serialize (line 10) | private serialize(value: string) {
    method constructor (line 41) | constructor(private options: TypeDocOptionMap["sluggerConfiguration"]) {}
    method slug (line 43) | slug(value: string) {
    method hasAnchor (line 62) | hasAnchor(anchor: string) {
    method getSimilarAnchors (line 66) | getSimilarAnchors(anchor: string) {

FILE: src/lib/output/themes/default/assets/typedoc/Application.ts
  type Window (line 5) | interface Window {
  method disableWritingLocalStorage (line 28) | disableWritingLocalStorage() {
  type IComponent (line 79) | interface IComponent {
  function registerComponent (line 92) | function registerComponent(
  class Application (line 105) | class Application {
    method constructor (line 107) | constructor() {
    method createComponents (line 125) | public createComponents(context: HTMLElement) {
    method filterChanged (line 136) | public filterChanged() {
    method showPage (line 140) | public showPage() {
    method scrollToHash (line 148) | public scrollToHash() {
    method ensureActivePageVisible (line 160) | public ensureActivePageVisible() {
    method updateIndexVisibility (line 182) | public updateIndexVisibility() {
    method ensureFocusedElementVisible (line 211) | private ensureFocusedElementVisible() {
    method listenForCodeCopies (line 260) | private listenForCodeCopies() {
  function checkVisible (line 284) | function checkVisible(elm: Element) {

FILE: src/lib/output/themes/default/assets/typedoc/Component.ts
  type IComponentOptions (line 3) | interface IComponentOptions {
  class Component (line 11) | class Component<E extends HTMLElement = HTMLElement> {
    method constructor (line 15) | constructor(options: IComponentOptions) {

FILE: src/lib/output/themes/default/assets/typedoc/EventTarget.ts
  type IEventListener (line 1) | interface IEventListener<T> {
  class EventTarget (line 8) | class EventTarget {
    method addEventListener (line 11) | public addEventListener<T>(type: string, callback: IEventListener<T>) {
    method removeEventListener (line 18) | public removeEventListener<T>(type: string, callback: IEventListener<T...
    method dispatchEvent (line 31) | public dispatchEvent<T>(event: CustomEvent<T>) {

FILE: src/lib/output/themes/default/assets/typedoc/Hierarchy.ts
  type Window (line 4) | interface Window {
  type JsonHierarchyElement (line 10) | interface JsonHierarchyElement {
  type JsonHierarchy (line 19) | interface JsonHierarchy {
  constant BASE_URL (line 25) | let BASE_URL = document.documentElement.dataset.base!;
  function initHierarchy (line 28) | function initHierarchy() {
  function initFullHierarchy (line 36) | function initFullHierarchy() {
  function initPartialHierarchy (line 101) | function initPartialHierarchy() {
  function buildHierarchyToggle (line 109) | async function buildHierarchyToggle() {
  function buildExpandedHierarchy (line 164) | function buildExpandedHierarchy(
  function followHierarchy (line 177) | function followHierarchy(
  function rootContainsElement (line 222) | function rootContainsElement(
  function makeIcon (line 249) | function makeIcon() {

FILE: src/lib/output/themes/default/assets/typedoc/Navigation.ts
  type NavigationElement (line 3) | interface NavigationElement {
  constant BASE_URL (line 12) | let BASE_URL: string;
  type Window (line 15) | interface Window {
  function initNav (line 21) | function initNav() {
  function buildNav (line 29) | async function buildNav() {
  function buildNavElement (line 49) | function buildNavElement(
  function addNavText (line 88) | function addNavText(
  function wbr (line 123) | function wbr(str: string, element: HTMLElement) {

FILE: src/lib/output/themes/default/assets/typedoc/Theme.ts
  type ThemeChoice (line 3) | type ThemeChoice = "os" | "light" | "dark";
  function initTheme (line 5) | function initTheme(choices: HTMLOptionElement) {
  function setTheme (line 19) | function setTheme(theme: ThemeChoice) {

FILE: src/lib/output/themes/default/assets/typedoc/components/Accordion.ts
  constant ACCORDION_INSTANCES (line 4) | const ACCORDION_INSTANCES = new Map<string, AccordionImpl>();
  class AccordionImpl (line 6) | class AccordionImpl {
    method constructor (line 11) | constructor(key: string, open: boolean) {
    method add (line 16) | add(accordion: HTMLDetailsElement) {
    method toggle (line 24) | toggle(open: boolean) {
  class Accordion (line 35) | class Accordion extends Component<HTMLDetailsElement> {
    method constructor (line 36) | constructor(options: IComponentOptions) {

FILE: src/lib/output/themes/default/assets/typedoc/components/Filter.ts
  function classListWillBeFiltered (line 10) | function classListWillBeFiltered(classList: string): boolean {
  class Filter (line 23) | class Filter extends Component<HTMLInputElement> {
    method constructor (line 34) | constructor(options: IComponentOptions) {
    method fromLocalStorage (line 50) | private fromLocalStorage(): boolean {
    method setLocalStorage (line 60) | private setLocalStorage(value: boolean): void {
    method handleValueChange (line 69) | private handleValueChange(): void {

FILE: src/lib/output/themes/default/assets/typedoc/components/Search.ts
  type SearchDocument (line 11) | interface SearchDocument {
  type IData (line 22) | interface IData {
  type Window (line 28) | interface Window {
  type SearchState (line 33) | interface SearchState {
  function updateIndex (line 46) | async function updateIndex(state: SearchState, status: HTMLElement) {
  function initSearch (line 57) | function initSearch() {
  function bindEvents (line 101) | function bindEvents(
  function updateResults (line 205) | function updateResults(
  function setNextResult (line 312) | function setNextResult(
  function removeVisualFocus (line 341) | function removeVisualFocus(field: HTMLInputElement) {
  function highlightMatches (line 349) | function highlightMatches(text: string, search: string) {
  constant SPECIAL_HTML (line 379) | const SPECIAL_HTML = {
  function escapeHtml (line 387) | function escapeHtml(text: string) {
  function updateStatusEl (line 398) | function updateStatusEl(status: HTMLElement, message: string) {
  function isKeyboardActive (line 421) | function isKeyboardActive() {

FILE: src/lib/output/themes/default/assets/typedoc/components/Toggle.ts
  class Toggle (line 4) | class Toggle extends Component {
    method constructor (line 9) | constructor(options: IComponentOptions) {
    method setActive (line 19) | setActive(value: boolean) {
    method onPointerUp (line 37) | onPointerUp(event: Event) {
    method onDocumentPointerDown (line 43) | onDocumentPointerDown(e: Event) {
    method onDocumentPointerUp (line 57) | onDocumentPointerUp(e: Event) {

FILE: src/lib/output/themes/default/assets/typedoc/utils/decompress.ts
  function decompressJson (line 7) | async function decompressJson(base64: string) {

FILE: src/lib/output/themes/default/assets/typedoc/utils/modal.ts
  constant CLOSING_CLASS (line 24) | const CLOSING_CLASS = "closing";
  constant OVERLAY_ID (line 25) | const OVERLAY_ID = "tsd-overlay";
  function hideScrollbar (line 28) | function hideScrollbar() {
  function resetScrollbar (line 42) | function resetScrollbar() {
  type Modal (line 47) | type Modal = HTMLDialogElement;
  function setUpModal (line 64) | function setUpModal(
  function openModal (line 105) | function openModal(modal: Modal) {
  function closeModal (line 117) | function closeModal(modal: Modal) {

FILE: src/lib/output/themes/default/assets/typedoc/utils/pointer.ts
  type Point (line 4) | interface Point {

FILE: src/lib/output/themes/default/assets/typedoc/utils/storage.ts
  type MinimalStorage (line 5) | interface MinimalStorage {
  method getItem (line 13) | getItem() {
  method setItem (line 16) | setItem() {}
  method disableWritingLocalStorage (line 32) | disableWritingLocalStorage() {
  method disable (line 35) | disable() {
  method enable (line 39) | enable() {

FILE: src/lib/output/themes/default/layouts/default.tsx
  function favicon (line 9) | function favicon(context: DefaultThemeRenderContext) {
  function buildSiteMetadata (line 30) | function buildSiteMetadata(context: DefaultThemeRenderContext) {

FILE: src/lib/output/themes/default/partials/anchor-icon.tsx
  function anchorIcon (line 5) | function anchorIcon(context: DefaultThemeRenderContext, anchor: string |...
  function anchorTargetIfPresent (line 15) | function anchorTargetIfPresent(context: DefaultThemeRenderContext, refl:...

FILE: src/lib/output/themes/default/partials/breadcrumb.tsx
  function breadcrumbs (line 5) | function breadcrumbs(context: DefaultThemeRenderContext, props: Reflecti...

FILE: src/lib/output/themes/default/partials/comment.tsx
  function renderDisplayParts (line 9) | function renderDisplayParts(
  function commentShortSummary (line 22) | function commentShortSummary(context: DefaultThemeRenderContext, props: ...
  function commentSummary (line 41) | function commentSummary(context: DefaultThemeRenderContext, props: Refle...
  function commentTags (line 55) | function commentTags(context: DefaultThemeRenderContext, props: Reflecti...
  function reflectionFlags (line 106) | function reflectionFlags(context: DefaultThemeRenderContext, props: Refl...

FILE: src/lib/output/themes/default/partials/footer.tsx
  function footer (line 4) | function footer(context: DefaultThemeRenderContext) {

FILE: src/lib/output/themes/default/partials/hierarchy.tsx
  function hasAnyLinkedReferenceType (line 10) | function hasAnyLinkedReferenceType(h: DeclarationHierarchy | undefined):...
  function hierarchy (line 18) | function hierarchy(context: DefaultThemeRenderContext, typeHierarchy: De...
  function hierarchyList (line 46) | function hierarchyList(context: DefaultThemeRenderContext, props: Declar...

FILE: src/lib/output/themes/default/partials/icon.tsx
  function buildRefIcons (line 35) | function buildRefIcons(icons: Icons, context: DefaultThemeRenderContext)...
  type Icons (line 59) | interface Icons extends Record<ReflectionKind, () => JSX.Element> {
  function getIcons (line 75) | function getIcons(): Icons {

FILE: src/lib/output/themes/default/partials/index.tsx
  function renderSection (line 6) | function renderSection(
  function index (line 39) | function index(context: DefaultThemeRenderContext, props: ContainerRefle...

FILE: src/lib/output/themes/default/partials/member.declaration.tsx
  function shouldRenderDefaultValue (line 7) | function shouldRenderDefaultValue(props: DeclarationReflection) {
  function memberDeclaration (line 26) | function memberDeclaration(context: DefaultThemeRenderContext, props: De...

FILE: src/lib/output/themes/default/partials/member.signature.body.tsx
  function memberSignatureBody (line 6) | function memberSignatureBody(

FILE: src/lib/output/themes/default/partials/member.signature.title.tsx
  function memberSignatureTitle (line 5) | function memberSignatureTitle(

FILE: src/lib/output/themes/default/partials/member.sources.tsx
  function sourceLink (line 5) | function sourceLink(context: DefaultThemeRenderContext, item: SourceRefe...

FILE: src/lib/output/themes/default/partials/member.tsx
  function member (line 7) | function member(context: DefaultThemeRenderContext, props: DeclarationRe...

FILE: src/lib/output/themes/default/partials/members.tsx
  function members (line 6) | function members(context: DefaultThemeRenderContext, props: ContainerRef...

FILE: src/lib/output/themes/default/partials/moduleReflection.tsx
  function moduleReflection (line 14) | function moduleReflection(context: DefaultThemeRenderContext, mod: Decla...
  function moduleMemberSummary (line 74) | function moduleMemberSummary(
  function uniqueName (line 126) | function uniqueName(context: DefaultThemeRenderContext, reflection: Refl...

FILE: src/lib/output/themes/default/partials/navigation.tsx
  function sidebar (line 7) | function sidebar(context: DefaultThemeRenderContext, props: PageEvent<Re...
  function buildFilterItem (line 16) | function buildFilterItem(context: DefaultThemeRenderContext, name: strin...
  function sidebarLinks (line 28) | function sidebarLinks(context: DefaultThemeRenderContext) {
  function settings (line 52) | function settings(context: DefaultThemeRenderContext) {
  function pageSidebar (line 140) | function pageSidebar(context: DefaultThemeRenderContext, props: PageEven...
  function buildSectionNavigation (line 149) | function buildSectionNavigation(context: DefaultThemeRenderContext, head...
  function pageNavigation (line 208) | function pageNavigation(context: DefaultThemeRenderContext, props: PageE...

FILE: src/lib/output/themes/default/partials/reflectionPreview.tsx
  function reflectionPreview (line 6) | function reflectionPreview(context: DefaultThemeRenderContext, props: Re...

FILE: src/lib/output/themes/default/partials/type.tsx
  function type (line 5) | function type(

FILE: src/lib/output/themes/default/partials/typeDetails.tsx
  function renderingTypeDetailsIsUseful (line 15) | function renderingTypeDetailsIsUseful(
  function typeDeclaration (line 42) | function typeDeclaration(
  type ExpandTypeInfo (line 63) | type ExpandTypeInfo = { expandType: Set<string>; preventExpand: Set<stri...
  function getExpandTypeInfo (line 66) | function getExpandTypeInfo(refl: Reflection): ExpandTypeInfo {
  function shouldExpandReference (line 99) | function shouldExpandReference(container: Reflection, reference: Referen...
  function typeDetails (line 123) | function typeDetails(
  function typeDetailsImpl (line 132) | function typeDetailsImpl(
  function typeDetailsIfUseful (line 192) | function typeDetailsIfUseful(
  function highlightedPropertyDetails (line 207) | function highlightedPropertyDetails(
  function highlightedDeclarationDetails (line 229) | function highlightedDeclarationDetails(
  function declarationDetails (line 248) | function declarationDetails(
  function renderChild (line 288) | function renderChild(
  function renderIndexSignature (line 384) | function renderIndexSignature(context: DefaultThemeRenderContext, index:...
  function renderingChildIsUseful (line 411) | function renderingChildIsUseful(refl: DeclarationReflection, notRendered...
  function renderingThisChildIsUseful (line 432) | function renderingThisChildIsUseful(refl: DeclarationReflection, notRend...

FILE: src/lib/output/themes/default/partials/typeParameters.tsx
  function typeParameters (line 6) | function typeParameters(context: DefaultThemeRenderContext, typeParamete...

FILE: src/lib/output/themes/default/templates/hierarchy.tsx
  function fullHierarchy (line 7) | function fullHierarchy(
  function hierarchyTemplate (line 45) | function hierarchyTemplate(context: DefaultThemeRenderContext, props: Pa...

FILE: src/lib/output/themes/default/templates/reflection.tsx
  function reflectionTemplate (line 12) | function reflectionTemplate(context: DefaultThemeRenderContext, props: P...
  function renderIndexSignature (line 80) | function renderIndexSignature(context: DefaultThemeRenderContext, index:...

FILE: src/lib/output/themes/lib.tsx
  function stringify (line 16) | function stringify(data: unknown) {
  function getDisplayName (line 23) | function getDisplayName(refl: Reflection): string {
  function toStyleClass (line 32) | function toStyleClass(str: string): string {
  function getKindClass (line 36) | function getKindClass(refl: Reflection): string {
  function wbr (line 51) | function wbr(str: string): (string | JSX.Element)[] {
  function join (line 62) | function join<T>(joiner: JSX.Children, list: readonly T[], cb: (x: T) =>...
  function classNames (line 75) | function classNames(names: Record<string, boolean | null | undefined>, e...
  function hasTypeParameters (line 85) | function hasTypeParameters(
  function renderTypeParametersSignature (line 95) | function renderTypeParametersSignature(
  function renderName (line 129) | function renderName(refl: Reflection) {
  function getHierarchyRoots (line 139) | function getHierarchyRoots(project: ProjectReflection): DeclarationRefle...
  function isNoneSection (line 175) | function isNoneSection(section: MemberSection) {
  function sortNoneSectionFirst (line 179) | function sortNoneSectionFirst(a: MemberSection, b: MemberSection) {
  type MemberSection (line 189) | interface MemberSection {
  function getMemberSections (line 195) | function getMemberSections(
  function getNameCollisionCount (line 246) | function getNameCollisionCount(project: ProjectReflection, name: string)...
  function getNamespacedPath (line 258) | function getNamespacedPath(reflection: Reflection): Reflection[] {
  function getUniquePath (line 277) | function getUniquePath(reflection: Reflection): Reflection[] {

FILE: src/lib/serialization/components.ts
  type SerializerComponent (line 10) | interface SerializerComponent<T extends object> {

FILE: src/lib/serialization/deserializer.ts
  type DeserializerComponent (line 41) | interface DeserializerComponent {
  type Deserializable (line 47) | interface Deserializable<T> {
  class Deserializer (line 59) | class Deserializer {
    method declaration (line 70) | declaration(parent, obj) {
    method document (line 73) | document(parent, obj) {
    method param (line 76) | param(parent, obj) {
    method project (line 79) | project() {
    method reference (line 84) | reference(parent, obj): ReferenceReflection {
    method signature (line 92) | signature(parent, obj) {
    method typeParam (line 99) | typeParam(parent, obj) {
    method array (line 110) | array(obj, de) {
    method conditional (line 113) | conditional(obj, de) {
    method indexedAccess (line 121) | indexedAccess(obj, de) {
    method inferred (line 127) | inferred(obj, de) {
    method intersection (line 130) | intersection(obj, de) {
    method intrinsic (line 133) | intrinsic(obj) {
    method literal (line 136) | literal(obj) {
    method mapped (line 146) | mapped(obj, de) {
    method optional (line 156) | optional(obj, de) {
    method predicate (line 159) | predicate(obj, de) {
    method query (line 166) | query(obj, de) {
    method reference (line 169) | reference(obj) {
    method reflection (line 173) | reflection(obj, de) {
    method rest (line 178) | rest(obj, de) {
    method templateLiteral (line 181) | templateLiteral(obj, de) {
    method tuple (line 187) | tuple(obj, de) {
    method namedTupleMember (line 192) | namedTupleMember(obj, de) {
    method typeOperator (line 199) | typeOperator(obj, de) {
    method union (line 205) | union(obj, de) {
    method unknown (line 208) | unknown(obj) {
    method constructor (line 222) | constructor(public logger: Logger) {}
    method addDeserializer (line 224) | addDeserializer(de: DeserializerComponent): void {
    method reviveProject (line 233) | reviveProject(
    method reviveProjects (line 287) | reviveProjects(
    method revive (line 363) | revive<T extends object, U extends Deserializable<T>>(
    method reviveMany (line 382) | reviveMany<T, U extends Deserializable<T>>(
    method reviveType (line 399) | reviveType(obj: JSONOutput.SomeType | undefined): SomeType | undefined {
    method constructReflection (line 403) | constructReflection<T extends JSONOutput.SomeReflection>(
    method constructType (line 417) | constructType<T extends JSONOutput.SomeType>(
    method fromObject (line 424) | fromObject<T>(
    method defer (line 450) | defer(cb: (project: ProjectReflection) => void) {

FILE: src/lib/serialization/events.ts
  class SerializeEvent (line 11) | class SerializeEvent {
    method constructor (line 19) | constructor(project: ProjectReflection, output?: JSONProjectReflection) {

FILE: src/lib/serialization/schema.ts
  constant SCHEMA_VERSION (line 36) | const SCHEMA_VERSION = "2.0";
  type ModelToObject (line 41) | type ModelToObject<T> = [T] extends [Array<infer U>] ? ModelToObject<U>[] :
  type _ModelToObject (line 46) | type _ModelToObject<T> =
  type Primitive (line 64) | type Primitive = string | number | undefined | null | boolean;
  type ToSerialized (line 67) | type ToSerialized<T> = T extends Primitive ? T :
  type S (line 77) | type S<T, K extends keyof T> = {
  type ReflectionId (line 81) | type ReflectionId = M.ReflectionId;
  type FileId (line 82) | type FileId = M.FileId;
  type ReflectionSymbolId (line 84) | interface ReflectionSymbolId {
  type ReflectionGroup (line 90) | interface ReflectionGroup extends S<M.ReflectionGroup, "title" | "descri...
  type ReflectionCategory (line 94) | interface ReflectionCategory extends S<M.ReflectionCategory, "title" | "...
  type ReflectionVariantMap (line 101) | interface ReflectionVariantMap {
  type SomeReflection (line 112) | type SomeReflection = ReflectionVariantMap[keyof ReflectionVariantMap];
  type DocumentReflection (line 115) | interface DocumentReflection extends
  type ReferenceReflection (line 126) | interface ReferenceReflection
  type SignatureReflection (line 137) | interface SignatureReflection extends
  type ParameterReflection (line 154) | interface ParameterReflection
  type DeclarationReflection (line 161) | interface DeclarationReflection extends
  type TypeParameterReflection (line 189) | interface TypeParameterReflection extends
  type ProjectReflection (line 198) | interface ProjectReflection extends
  type ContainerReflection (line 217) | interface ContainerReflection extends
  type Reflection (line 228) | interface Reflection extends S<M.Reflection, "id" | "variant" | "name" |...
  type SomeType (line 235) | type SomeType = TypeKindMap[keyof TypeKindMap];
  type TypeKindMap (line 238) | type TypeKindMap = {
  type ArrayType (line 262) | interface ArrayType extends Type, S<M.ArrayType, "type" | "elementType"> {}
  type ConditionalType (line 265) | interface ConditionalType extends
  type IndexedAccessType (line 274) | interface IndexedAccessType extends Type, S<M.IndexedAccessType, "type" ...
  type InferredType (line 277) | interface InferredType extends Type, S<M.InferredType, "type" | "name" |...
  type IntersectionType (line 280) | interface IntersectionType extends Type, S<M.IntersectionType, "type" | ...
  type IntrinsicType (line 283) | interface IntrinsicType extends Type, S<M.IntrinsicType, "type" | "name"...
  type OptionalType (line 286) | interface OptionalType extends Type, S<M.OptionalType, "type" | "element...
  type PredicateType (line 289) | interface PredicateType extends Type, S<M.PredicateType, "type" | "name"...
  type QueryType (line 292) | interface QueryType extends Type, S<M.QueryType, "type" | "queryType"> {}
  type ReferenceType (line 295) | interface ReferenceType extends
  type ReflectionType (line 310) | interface ReflectionType extends Type, S<M.ReflectionType, "type" | "dec...
  type RestType (line 313) | interface RestType extends Type, S<M.RestType, "type" | "elementType"> {}
  type LiteralType (line 316) | interface LiteralType extends Type, S<M.LiteralType, "type" | "value"> {}
  type TupleType (line 319) | interface TupleType extends Type, S<M.TupleType, "type"> {
  type NamedTupleMemberType (line 324) | interface NamedTupleMemberType extends Type, S<M.NamedTupleMember, "type...
  type TemplateLiteralType (line 327) | interface TemplateLiteralType extends Type, S<M.TemplateLiteralType, "ty...
  type MappedType (line 332) | interface MappedType extends
  type TypeOperatorType (line 347) | interface TypeOperatorType extends Type, S<M.TypeOperatorType, "type" | ...
  type UnionType (line 350) | interface UnionType extends Type, S<M.UnionType, "type" | "types" | "ele...
  type UnknownType (line 353) | interface UnknownType extends Type, S<M.UnknownType, "type" | "name"> {}
  type Type (line 356) | interface Type {}
  type BoolKeys (line 360) | type BoolKeys<T> = {
  type ReflectionFlags (line 364) | interface ReflectionFlags extends Partial<S<M.ReflectionFlags, BoolKeys<...
  type Comment (line 367) | interface Comment extends Partial<S<M.Comment, "blockTags" | "label">> {
  type CommentTag (line 373) | interface CommentTag extends S<M.CommentTag, "tag" | "name" | "typeAnnot...
  type CommentDisplayPart (line 381) | type CommentDisplayPart =
  type InlineTagDisplayPart (line 392) | interface InlineTagDisplayPart {
  type RelativeLinkDisplayPart (line 405) | interface RelativeLinkDisplayPart {
  type SourceReference (line 421) | interface SourceReference extends S<M.SourceReference, "fileName" | "lin...
  type FileRegistry (line 423) | interface FileRegistry {

FILE: src/lib/serialization/serializer.ts
  type SerializerEvents (line 8) | interface SerializerEvents {
  class Serializer (line 19) | class Serializer extends EventDispatcher<SerializerEvents> {
    method addSerializer (line 44) | addSerializer<T extends object>(serializer: SerializerComponent<T>): v...
    method removeSerializer (line 48) | removeSerializer(serializer: SerializerComponent<any>): void {
    method toObject (line 58) | toObject(
    method toObjectsOptional (line 73) | toObjectsOptional<
    method projectToObject (line 87) | projectToObject(

FILE: src/lib/types/shiki/shiki.d.ts
  type Instance (line 7) | interface Instance {
  type WebAssemblyInstantiatedSource (line 11) | interface WebAssemblyInstantiatedSource {
  type ImportValue (line 14) | type ImportValue = unknown;
  type Response (line 17) | interface Response {

FILE: src/lib/types/ts-internal/index.d.ts
  type Node (line 8) | interface Node {
  type Symbol (line 13) | interface Symbol {
  type Type (line 19) | interface Type {
  type UnionType (line 29) | interface UnionType {
  type CheckFlags (line 36) | enum CheckFlags {

FILE: src/lib/utils-common/array.ts
  function insertPrioritySorted (line 10) | function insertPrioritySorted<T extends { priority: number }>(
  function insertOrderSorted (line 26) | function insertOrderSorted<T extends { order: number }>(
  function binaryFindPartition (line 42) | function binaryFindPartition<T>(
  function removeIfPresent (line 71) | function removeIfPresent<T>(arr: T[] | undefined, item: T) {
  function removeIf (line 86) | function removeIf<T>(arr: T[], predicate: (item: T) => boolean) {
  function unique (line 99) | function unique<T>(arr: Iterable<T> | undefined): T[] {
  function partition (line 103) | function partition<T>(
  function filterMap (line 135) | function filterMap<T, U>(
  function firstDefined (line 151) | function firstDefined<T, U>(
  function filter (line 164) | function filter<T>(
  function aggregate (line 171) | function aggregate<T>(arr: T[], fn: (item: T) => number) {
  function joinArray (line 175) | function joinArray<T>(
  function maxElementByScore (line 186) | function maxElementByScore<T>(

FILE: src/lib/utils-common/declarationReference.ts
  type MeaningKeyword (line 31) | type MeaningKeyword = (typeof MeaningKeywords)[number];
  type DeclarationReference (line 33) | interface DeclarationReference {
  type Meaning (line 39) | interface Meaning {
  function meaningToString (line 45) | function meaningToString(meaning: Meaning): string {
  type SymbolReference (line 58) | interface SymbolReference {
  type ComponentPath (line 63) | interface ComponentPath {
  function parseEscapeSequence (line 106) | function parseEscapeSequence(
  function parseUnicodeEscapeSequence (line 152) | function parseUnicodeEscapeSequence(
  function parseString (line 204) | function parseString(
  function parseModuleSource (line 234) | function parseModuleSource(
  function parseSymbolReference (line 261) | function parseSymbolReference(
  function parseComponent (line 281) | function parseComponent(
  function parseComponentPath (line 314) | function parseComponentPath(source: string, pos: number, end: number) {
  function parseMeaning (line 348) | function parseMeaning(
  function parseDeclarationReference (line 428) | function parseDeclarationReference(

FILE: src/lib/utils-common/enum.ts
  function getEnumFlags (line 1) | function getEnumFlags<T extends number>(flags: T): T[] {
  function removeFlag (line 13) | function removeFlag<T extends number>(flag: T, remove: T & {}): T {
  function hasAllFlags (line 17) | function hasAllFlags(flags: number, check: number): boolean {
  function hasAnyFlag (line 21) | function hasAnyFlag(flags: number, check: number): boolean {
  function debugFlags (line 25) | function debugFlags(Enum: object, flags: number): string[] {
  function getEnumKeys (line 32) | function getEnumKeys(Enum: object): string[] {
  type EnumKeys (line 37) | type EnumKeys<E extends object> =

FILE: src/lib/utils-common/events.ts
  class EventDispatcher (line 9) | class EventDispatcher<T extends Record<keyof T, unknown[]>> {
    method on (line 27) | on<K extends keyof T>(
    method off (line 42) | off<K extends keyof T>(
    method trigger (line 60) | trigger<K extends keyof T>(event: K, ...args: T[K]): void {

FILE: src/lib/utils-common/general.ts
  type InternalOnly (line 7) | type InternalOnly = true;
  type IfInternal (line 28) | type IfInternal<T, F> = InternalOnly extends true ? T : F;
  type NeverIfInternal (line 35) | type NeverIfInternal<T> = IfInternal<never, T>;
  function assertNever (line 40) | function assertNever(x: never): never {
  function assert (line 46) | function assert(x: unknown, message = "Assertion failed"): asserts x {
  function NonEnumerable (line 54) | function NonEnumerable(

FILE: src/lib/utils-common/hooks.ts
  type EventHooksMomento (line 8) | type EventHooksMomento<T extends Record<keyof T, unknown[]>, _R> = {
  class EventHooks (line 28) | class EventHooks<T extends Record<keyof T, unknown[]>, R> {
    method on (line 42) | on<K extends keyof T>(
    method once (line 58) | once<K extends keyof T>(
    method off (line 73) | off<K extends keyof T>(event: K, listener: (...args: T[K]) => R): void {
    method emit (line 88) | emit<K extends keyof T>(event: K, ...args: T[K]): R[] {
    method saveMomento (line 97) | saveMomento(): EventHooksMomento<T, R> {
    method restoreMomento (line 112) | restoreMomento(momento: EventHooksMomento<T, R>): void {

FILE: src/lib/utils-common/i18n.ts
  type TranslatedString (line 9) | type TranslatedString = string & { [TranslatedString]: true };
  function setTranslations (line 14) | function setTranslations(t: Record<string, string>) {
  function addTranslations (line 22) | function addTranslations(t: Record<string, string>) {
  method get (line 27) | get(_, key) {
  method has (line 35) | has(_, key) {
  function translateTagName (line 40) | function translateTagName(tag: TagString): TranslatedString {

FILE: src/lib/utils-common/jsx.elements.ts
  type IntrinsicElements (line 1) | interface IntrinsicElements {
  function JsxFragment (line 131) | function JsxFragment(): never {
  type JsxComponent (line 135) | type JsxComponent<P> = (props: P) => JsxElement | null | undefined;
  type JsxElement (line 137) | interface JsxElement {
  type JsxChildren (line 143) | type JsxChildren =
  type JsxHtmlGlobalProps (line 158) | interface JsxHtmlGlobalProps {
  type JsxAElementProps (line 211) | interface JsxAElementProps extends JsxHtmlGlobalProps {
  type JsxAreaElementProps (line 227) | interface JsxAreaElementProps extends JsxHtmlGlobalProps {
  type JsxAudioElementProps (line 245) | interface JsxAudioElementProps extends JsxHtmlGlobalProps {
  type JsxBaseElementProps (line 260) | interface JsxBaseElementProps extends JsxHtmlGlobalProps {
  type JsxBlockquoteElementProps (line 270) | interface JsxBlockquoteElementProps extends JsxHtmlGlobalProps {
  type JsxBrElementProps (line 279) | interface JsxBrElementProps extends JsxHtmlGlobalProps {
  type JsxButtonElementProps (line 288) | interface JsxButtonElementProps extends JsxHtmlGlobalProps {
  type JsxCanvasElementProps (line 310) | interface JsxCanvasElementProps extends JsxHtmlGlobalProps {
  type JsxColElementProps (line 320) | interface JsxColElementProps extends JsxHtmlGlobalProps {
  type JsxColgroupElementProps (line 329) | interface JsxColgroupElementProps extends JsxHtmlGlobalProps {
  type JsxDataElementProps (line 338) | interface JsxDataElementProps extends JsxHtmlGlobalProps {
  type JsxDelElementProps (line 347) | interface JsxDelElementProps extends JsxHtmlGlobalProps {
  type JsxDetailsElementProps (line 357) | interface JsxDetailsElementProps extends JsxHtmlGlobalProps {
  type JsxDialogElementProps (line 366) | interface JsxDialogElementProps extends JsxHtmlGlobalProps {
  type JsxEmbedElementProps (line 375) | interface JsxEmbedElementProps extends JsxHtmlGlobalProps {
  type JsxFieldsetElementProps (line 387) | interface JsxFieldsetElementProps extends JsxHtmlGlobalProps {
  type JsxFormElementProps (line 398) | interface JsxFormElementProps extends JsxHtmlGlobalProps {
  type JsxHtmlElementProps (line 418) | interface JsxHtmlElementProps extends JsxHtmlGlobalProps {
  type JsxIframeElementProps (line 427) | interface JsxIframeElementProps extends JsxHtmlGlobalProps {
  type JsxImgElementProps (line 451) | interface JsxImgElementProps extends JsxHtmlGlobalProps {
  type JsxInputElementProps (line 477) | interface JsxInputElementProps extends JsxHtmlGlobalProps {
  type JsxInsElementProps (line 539) | interface JsxInsElementProps extends JsxHtmlGlobalProps {
  type JsxLabelElementProps (line 549) | interface JsxLabelElementProps extends JsxHtmlGlobalProps {
  type JsxLiElementProps (line 558) | interface JsxLiElementProps extends JsxHtmlGlobalProps {
  type JsxLinkElementProps (line 567) | interface JsxLinkElementProps extends JsxHtmlGlobalProps {
  type JsxMapElementProps (line 598) | interface JsxMapElementProps extends JsxHtmlGlobalProps {
  type JsxMetaElementProps (line 607) | interface JsxMetaElementProps extends JsxHtmlGlobalProps {
  type JsxMeterElementProps (line 624) | interface JsxMeterElementProps extends JsxHtmlGlobalProps {
  type JsxObjectElementProps (line 639) | interface JsxObjectElementProps extends JsxHtmlGlobalProps {
  type JsxOlElementProps (line 654) | interface JsxOlElementProps extends JsxHtmlGlobalProps {
  type JsxOptgroupElementProps (line 665) | interface JsxOptgroupElementProps extends JsxHtmlGlobalProps {
  type JsxOptionElementProps (line 675) | interface JsxOptionElementProps extends JsxHtmlGlobalProps {
  type JsxOutputElementProps (line 687) | interface JsxOutputElementProps extends JsxHtmlGlobalProps {
  type JsxParamElementProps (line 698) | interface JsxParamElementProps extends JsxHtmlGlobalProps {
  type JsxPortalElementProps (line 708) | interface JsxPortalElementProps extends JsxHtmlGlobalProps {
  type JsxProgressElementProps (line 726) | interface JsxProgressElementProps extends JsxHtmlGlobalProps {
  type JsxQElementProps (line 736) | interface JsxQElementProps extends JsxHtmlGlobalProps {
  type JsxScriptElementProps (line 745) | interface JsxScriptElementProps extends JsxHtmlGlobalProps {
  type JsxSelectElementProps (line 769) | interface JsxSelectElementProps extends JsxHtmlGlobalProps {
  type JsxSlotElementProps (line 785) | interface JsxSlotElementProps extends JsxHtmlGlobalProps {
  type JsxSourceElementProps (line 794) | interface JsxSourceElementProps extends JsxHtmlGlobalProps {
  type JsxStyleElementProps (line 807) | interface JsxStyleElementProps extends JsxHtmlGlobalProps {
  type JsxTdElementProps (line 818) | interface JsxTdElementProps extends JsxHtmlGlobalProps {
  type JsxTextareaElementProps (line 829) | interface JsxTextareaElementProps extends JsxHtmlGlobalProps {
  type JsxThElementProps (line 849) | interface JsxThElementProps extends JsxHtmlGlobalProps {
  type JsxTimeElementProps (line 862) | interface JsxTimeElementProps extends JsxHtmlGlobalProps {
  type JsxTrackElementProps (line 871) | interface JsxTrackElementProps extends JsxHtmlGlobalProps {
  type JsxVideoElementProps (line 884) | interface JsxVideoElementProps extends JsxHtmlGlobalProps {
  type JsxSvgCoreProps (line 904) | interface JsxSvgCoreProps {
  type JsxSvgStyleProps (line 912) | interface JsxSvgStyleProps {
  type JsxSvgConditionalProcessingProps (line 917) | interface JsxSvgConditionalProcessingProps {
  type JsxSvgPresentationProps (line 921) | interface JsxSvgPresentationProps {
  type JsxSvgElementProps (line 1036) | interface JsxSvgElementProps extends JsxSvgCoreProps, JsxSvgStyleProps, ...
  type JsxGElementProps (line 1058) | interface JsxGElementProps
  type JsxPathElementProps (line 1067) | interface JsxPathElementProps
  type JsxRectElementProps (line 1079) | interface JsxRectElementProps
  type JsxCircleElementProps (line 1096) | interface JsxCircleElementProps
  type JsxEllipseElementProps (line 1110) | interface JsxEllipseElementProps
  type JsxPolygonElementProps (line 1125) | interface JsxPolygonElementProps
  type JsxPolylineElementProps (line 1136) | interface JsxPolylineElementProps
  type JsxLineElementProps (line 1147) | interface JsxLineElementProps
  type JsxUseElementProps (line 1162) | interface JsxUseElementProps
  type JsxTextElementProps (line 1177) | interface JsxTextElementProps extends JsxSvgCoreProps, JsxSvgStyleProps,...
  type JsxImageElementProps (line 1187) | interface JsxImageElementProps extends JsxSvgCoreProps {

FILE: src/lib/utils-common/jsx.ts
  function Raw (line 27) | function Raw(_props: { html: string }) {
  function createElement (line 87) | function createElement(
  function setRenderSettings (line 96) | function setRenderSettings(options: { pretty: boolean }) {
  function renderElement (line 100) | function renderElement(element: JsxElement | null | undefined): string {
  function renderElementToText (line 182) | function renderElementToText(element: JsxElement | null | undefined) {

FILE: src/lib/utils-common/logger.ts
  type LogLevel (line 8) | enum LogLevel {
  class Logger (line 29) | class Logger {
    method hasErrors (line 53) | hasErrors(): boolean {
    method hasWarnings (line 60) | hasWarnings(): boolean {
    method resetErrors (line 67) | resetErrors() {
    method resetWarnings (line 74) | resetWarnings() {
    method verbose (line 84) | verbose(text: string) {
    method info (line 89) | info(text: IfInternal<TranslatedString, string>) {
    method warn (line 104) | warn(text: string, ...args: [MinimalNode?] | [number, MinimalSourceFil...
    method validationWarning (line 120) | validationWarning(...args: [any, ...any[]]): void {
    method error (line 136) | error(text: string, ...args: [MinimalNode?] | [number, MinimalSourceFi...
    method log (line 147) | log(_message: string, level: LogLevel) {
    method addContext (line 156) | protected addContext(
  class ConsoleLogger (line 168) | class ConsoleLogger extends Logger {
    method log (line 169) | override log(message: string, level: Exclude<LogLevel, LogLevel.None>) {
    method addContext (line 188) | protected override addContext(

FILE: src/lib/utils-common/map.ts
  class DefaultMap (line 1) | class DefaultMap<K, V> extends Map<K, V> {
    method constructor (line 2) | constructor(private creator: (key: K) => V) {
    method get (line 6) | override get(key: K): V {
    method getNoInsert (line 17) | getNoInsert(key: K): V | undefined {
  class StableKeyMap (line 22) | class StableKeyMap<K extends { getStableKey(): string }, V> {
    method size (line 26) | get size(): number {
    method set (line 30) | set(key: K, value: V) {
    method get (line 35) | get(key: K): V | undefined {
    method has (line 39) | has(key: K): boolean {
    method clear (line 43) | clear(): void {
    method delete (line 47) | delete(key: K): boolean {
    method forEach (line 51) | forEach(
    method entries (line 60) | entries(): IterableIterator<[K, V]> {
    method keys (line 64) | *keys(): IterableIterator<K> {
    method values (line 70) | *values(): IterableIterator<V> {
  method [Symbol.iterator] (line 76) | [Symbol.iterator](): IterableIterator<[K, V]> {

FILE: src/lib/utils-common/minimalSourceFile.ts
  type MinimalNode (line 12) | interface MinimalNode {
  class MinimalSourceFile (line 19) | class MinimalSourceFile implements SourceFileLike {
    method constructor (line 24) | constructor(
    method getLineAndCharacterOfPosition (line 42) | getLineAndCharacterOfPosition(pos: number): LineAndCharacter {

FILE: src/lib/utils-common/path.ts
  type NormalizedPath (line 14) | type NormalizedPath = "" | "/" | string & { readonly __normPath: unique ...
  type NormalizedPathOrModule (line 20) | type NormalizedPathOrModule = NormalizedPath | string & { readonly __nor...
  type NormalizedPathOrModuleOrFunction (line 26) | type NormalizedPathOrModuleOrFunction = NormalizedPathOrModule | ((app: ...
  type GlobString (line 31) | type GlobString = string & { readonly __globString: unique symbol };
  function dirname (line 34) | function dirname(path: NormalizedPath): NormalizedPath {
  function basename (line 51) | function basename(path: NormalizedPath): NormalizedPath {
  function relative (line 70) | function relative(from: NormalizedPath, to: NormalizedPath): NormalizedP...
  function normalize (line 115) | function normalize(path: NormalizedPath): NormalizedPath {
  function resolve (line 143) | function resolve(from: NormalizedPath, to: NormalizedPath): NormalizedPa...
  function isAbsolute (line 153) | function isAbsolute(from: NormalizedPath): boolean {
  function splitFilename (line 157) | function splitFilename(name: string): { name: string; ext: string } {
  function isDeclarationFilePath (line 165) | function isDeclarationFilePath(path: NormalizedPath) {

FILE: src/lib/utils-common/set.ts
  function setIntersection (line 1) | function setIntersection<T>(a: Iterable<T>, b: Set<T>): Set<T> {
  function setDifference (line 11) | function setDifference<T>(a: Iterable<T>, b: Iterable<T>): Set<T> {
  function setUnion (line 19) | function setUnion<T>(a: Iterable<T>, b: Iterable<T>): Set<T> {

FILE: src/lib/utils-common/string.ts
  type Chars (line 6) | type Chars<T extends string> = T extends `${infer C}${infer R}` ? C | Ch...
  function countMatches (line 10) | function countMatches(text: string, search: string) {
  function dedent (line 26) | function dedent(text: string) {
  function editDistance (line 45) | function editDistance(s: string, t: string): number {
  function getSimilarValues (line 75) | function getSimilarValues(values: Iterable<string>, compareTo: string) {
  function escapeRegExp (line 92) | function escapeRegExp(s: string) {
  function escapeHtml (line 103) | function escapeHtml(html: string) {

FILE: src/lib/utils-common/validation.ts
  type Infer (line 1) | type Infer<T extends Schema> = T extends Optional<infer U> ? Infer<U> :
  type Optional (line 22) | type Optional<T extends Schema> = Record<typeof opt, T>;
  type Guard (line 23) | type Guard<T> = (x: unknown) => x is T;
  type OptionalKeys (line 25) | type OptionalKeys<T> = keyof {
  type Schema (line 37) | type Schema =
  function validate (line 65) | function validate(schema: Schema, obj: any): boolean {
  function optional (line 118) | function optional<T extends Schema>(x: T): Optional<T> {
  type TagString (line 122) | type TagString = `@${string}`;
  function isTagString (line 124) | function isTagString(x: unknown): x is TagString {

FILE: src/lib/utils/ValidatingFileRegistry.ts
  class ValidatingFileRegistry (line 6) | class ValidatingFileRegistry extends FileRegistry {
    method constructor (line 9) | constructor(basePath: NormalizedPath = "") {
    method register (line 14) | override register(
    method fromObject (line 38) | override fromObject(de: Deserializer, obj: JSONOutput.FileRegistry) {

FILE: src/lib/utils/component.ts
  type ComponentHost (line 7) | interface ComponentHost {
  type Component (line 11) | interface Component<E extends Record<keyof E, unknown[]> = {}> extends A...
  method constructor (line 36) | constructor(owner: O) {
  method application (line 44) | get application(): Application {
  method owner (line 54) | get owner(): O {

FILE: src/lib/utils/compress.ts
  function compressJson (line 12) | async function compressJson(data: any) {

FILE: src/lib/utils/declaration-maps.ts
  function resolveDeclarationMaps (line 10) | function resolveDeclarationMaps(file: string): string {
  function addInferredDeclarationMapPaths (line 55) | function addInferredDeclarationMapPaths(

FILE: src/lib/utils/entry-point.ts
  type EntryPointStrategy (line 37) | type EntryPointStrategy = (typeof EntryPointStrategy)[keyof typeof Entry...
  type DocumentationEntryPoint (line 39) | interface DocumentationEntryPoint {
  type DocumentEntryPoint (line 45) | interface DocumentEntryPoint {
  function inferEntryPoints (line 50) | function inferEntryPoints(logger: Logger, options: Options, programs?: t...
  function getEntryPoints (line 118) | function getEntryPoints(
  function getDocumentEntryPoints (line 178) | function getDocumentEntryPoints(
  function getWatchEntryPoints (line 208) | function getWatchEntryPoints(
  function getPackageDirectories (line 266) | function getPackageDirectories(
  function getModuleName (line 279) | function getModuleName(fileName: string, baseDir: string) {
  function getEntryPointsForPaths (line 290) | function getEntryPointsForPaths(
  function getExpandedEntryPointsForPaths (line 342) | function getExpandedEntryPointsForPaths(
  function expandGlobs (line 361) | function expandGlobs(globs: GlobString[], exclude: GlobString[], logger:...
  function getEntryPrograms (line 403) | function getEntryPrograms(
  function expandInputFiles (line 469) | function expandInputFiles(

FILE: src/lib/utils/fs.ts
  function isFile (line 9) | function isFile(file: string) {
  function isDir (line 17) | function isDir(path: string) {
  function readFile (line 31) | function readFile(file: string): string {
  function writeFileSync (line 68) | function writeFileSync(fileName: string, data: string) {
  function writeFile (line 81) | async function writeFile(fileName: string, data: string) {
  function copy (line 91) | async function copy(src: string, dest: string): Promise<void> {
  function copySync (line 107) | function copySync(src: string, dest: string): void {
  type DiscoverFilesController (line 121) | interface DiscoverFilesController {
  function discoverFiles (line 134) | function discoverFiles(
  function glob (line 222) | function glob(
  function hasTsExtension (line 255) | function hasTsExtension(path: string): boolean {
  function hasDeclarationFileExtension (line 259) | function hasDeclarationFileExtension(path: string) {
  function discoverInParentDirExactMatch (line 263) | function discoverInParentDirExactMatch<T extends {}>(
  function discoverPackageJson (line 287) | function discoverPackageJson(
  function findPackageForPath (line 312) | function findPackageForPath(sourcePath: string): readonly [packageName: ...
  function inferPackageEntryPointPaths (line 339) | function inferPackageEntryPointPaths(
  function resolveExport (line 370) | function resolveExport(
  function isWildcardName (line 412) | function isWildcardName(name: string) {
  function resolveStarredExport (line 422) | function resolveStarredExport(

FILE: src/lib/utils/general.ts
  constant TYPEDOC_ROOT (line 6) | const TYPEDOC_ROOT = dirname(
  type TypeDocGlobals (line 18) | interface TypeDocGlobals {
  function hasBeenLoadedMultipleTimes (line 28) | function hasBeenLoadedMultipleTimes() {
  function getLoadedPaths (line 32) | function getLoadedPaths() {
  function isDebugging (line 36) | function isDebugging() {

FILE: src/lib/utils/highlighter.tsx
  type DoubleHighlighter (line 23) | interface DoubleHighlighter {
  class ShikiHighlighter (line 29) | class ShikiHighlighter {
    method constructor (line 32) | constructor(
    method supports (line 38) | supports(lang: string) {
    method highlight (line 42) | highlight(code: string, lang: string) {
    method getStyles (line 64) | getStyles() {
    method getClass (line 111) | private getClass(variants: Record<string, shiki.TokenStyles>): string {
  class TestHighlighter (line 122) | class TestHighlighter implements DoubleHighlighter {
    method supports (line 123) | supports(): boolean {
    method highlight (line 126) | highlight(code: string): string {
    method getStyles (line 129) | getStyles(): string {
  function loadTestHighlighter (line 138) | function loadTestHighlighter() {
  function loadHighlighter (line 142) | async function loadHighlighter(
  function isPlainLanguage (line 165) | function isPlainLanguage(lang: string) {
  function isSupportedLanguage (line 169) | function isSupportedLanguage(lang: string) {
  function getSupportedLanguages (line 173) | function getSupportedLanguages(): string[] {
  function getSupportedThemes (line 177) | function getSupportedThemes(): string[] {
  function isLoadedLanguage (line 181) | function isLoadedLanguage(lang: string): boolean {
  function highlight (line 185) | function highlight(code: string, lang: string): string {
  function getStyles (line 195) | function getStyles(): string {

FILE: src/lib/utils/html.ts
  type EntityData (line 6) | interface EntityData {
  type Trie (line 14) | interface Trie {
  function createNormalizedUrl (line 35) | function createNormalizedUrl(url: string) {
  type Chars (line 78) | const enum Chars {
  function isalpha (line 121) | function isalpha(ch: number) {
  function isdigit (line 125) | function isdigit(ch: number) {
  function isalnum (line 129) | function isalnum(ch: number) {
  function isxdigit (line 133) | function isxdigit(ch: number) {
  type ParserState (line 140) | const enum ParserState {
  class HtmlAttributeParser (line 167) | class HtmlAttributeParser {
    method constructor (line 176) | constructor(
    method step (line 181) | step() {
    method peek (line 201) | private peek() {
    method consume (line 205) | private consume() {
    method beforeAttributeName (line 212) | beforeAttributeName() {
    method attributeName (line 241) | attributeName() {
    method afterAttributeName (line 282) | afterAttributeName() {
    method beforeAttributeValue (line 311) | beforeAttributeValue() {
    method attributeValueDoubleQuoted (line 337) | attributeValueDoubleQuoted() {
    method attributeValueSingleQuoted (line 363) | attributeValueSingleQuoted() {
    method attributeValueUnquoted (line 389) | attributeValueUnquoted() {
    method afterAttributeValueQuoted (line 429) | afterAttributeValueQuoted() {
    method characterReference (line 451) | characterReference() {
    method namedCharacterReference (line 468) | namedCharacterReference() {
    method ambiguousAmpersand (line 514) | ambiguousAmpersand() {
    method numericCharacterReference (line 525) | numericCharacterReference() {
    method hexadecimalCharacterReferenceStart (line 542) | hexadecimalCharacterReferenceStart() {
    method decimalCharacterReferenceStart (line 555) | decimalCharacterReferenceStart() {
    method hexadecimalCharacterReference (line 567) | hexadecimalCharacterReference() {
    method decimalCharacterReference (line 591) | decimalCharacterReference() {
    method numericCharacterReferenceEndState (line 609) | numericCharacterReferenceEndState() {
    method flushTemporaryBuffer (line 637) | private flushTemporaryBuffer() {
  function isLeadingSurrogate (line 646) | function isLeadingSurrogate(ch: number) {
  function isTrailingSurrogate (line 651) | function isTrailingSurrogate(ch: number) {
  function isSurrogate (line 656) | function isSurrogate(ch: number) {

FILE: src/lib/utils/loggers.ts
  function color (line 15) | function color(text: string, color: keyof typeof Colors) {
  function diagnostics (line 28) | function diagnostics(logger: Logger, diagnostics: readonly ts.Diagnostic...
  function diagnostic (line 34) | function diagnostic(logger: Logger, diagnostic: ts.Diagnostic) {
  class FancyConsoleLogger (line 57) | class FancyConsoleLogger extends ConsoleLogger {
    method addContext (line 58) | protected override addContext(

FILE: src/lib/utils/options/declaration.ts
  type EmitStrategy (line 28) | type EmitStrategy = (typeof EmitStrategy)[keyof typeof EmitStrategy];
  type CommentStyle (line 40) | type CommentStyle = (typeof CommentStyle)[keyof typeof CommentStyle];
  type OutputSpecification (line 42) | type OutputSpecification = {
  type TypeDocOptions (line 123) | type TypeDocOptions = {
  type TypeDocOptionValues (line 149) | type TypeDocOptionValues = {
  type TypeDocPackageOptions (line 171) | interface TypeDocPackageOptions extends Omit<TypeDocOptions, typeof root...
  type TypeDocOptionMap (line 188) | interface TypeDocOptionMap {
  type ManuallyValidatedOption (line 360) | type ManuallyValidatedOption<T> = { __validated: T };
  type ValidationOptions (line 362) | type ValidationOptions = {
  type JsDocCompatibility (line 390) | type JsDocCompatibility = {
  type KeyToDeclaration (line 416) | type KeyToDeclaration<K extends keyof TypeDocOptionMap> = TypeDocOptionM...
  type ParameterHint (line 445) | enum ParameterHint {
  type ParameterType (line 450) | enum ParameterType {
  type DeclarationOptionBase (line 493) | interface DeclarationOptionBase {
  type StringDeclarationOption (line 520) | interface StringDeclarationOption extends DeclarationOptionBase {
  type NumberDeclarationOption (line 554) | interface NumberDeclarationOption extends DeclarationOptionBase {
  type BooleanDeclarationOption (line 579) | interface BooleanDeclarationOption extends DeclarationOptionBase {
  type ArrayDeclarationOption (line 588) | interface ArrayDeclarationOption extends DeclarationOptionBase {
  type GlobArrayDeclarationOption (line 608) | interface GlobArrayDeclarationOption extends DeclarationOptionBase {
  type MixedDeclarationOption (line 624) | interface MixedDeclarationOption extends DeclarationOptionBase {
  type ObjectDeclarationOption (line 639) | interface ObjectDeclarationOption extends DeclarationOptionBase {
  type MapDeclarationOption (line 653) | interface MapDeclarationOption<T> extends DeclarationOptionBase {
  type FlagsDeclarationOption (line 670) | interface FlagsDeclarationOption<T extends Record<string, boolean>> exte...
  type DeclarationOption (line 679) | type DeclarationOption =
  type ParameterTypeToOptionTypeMap (line 690) | interface ParameterTypeToOptionTypeMap {
  type DeclarationOptionToOptionType (line 710) | type DeclarationOptionToOptionType<T extends DeclarationOption> = T exte...
  function toStringArray (line 714) | function toStringArray(value: unknown, option: DeclarationOption): strin...
  function toStringOrFunctionArray (line 724) | function toStringOrFunctionArray(
  method [ParameterType.String] (line 745) | [ParameterType.String](value, option) {
  method [ParameterType.Path] (line 751) | [ParameterType.Path](value, option, configPath) {
  method [ParameterType.UrlOrPath] (line 758) | [ParameterType.UrlOrPath](value, option, configPath) {
  method [ParameterType.Number] (line 771) | [ParameterType.Number](value, option) {
  method [ParameterType.Boolean] (line 785) | [ParameterType.Boolean](value) {
  method [ParameterType.Array] (line 788) | [ParameterType.Array](value, option) {
  method [ParameterType.PathArray] (line 793) | [ParameterType.PathArray](value, option, configPath) {
  method [ParameterType.ModuleArray] (line 800) | [ParameterType.ModuleArray](value, option, configPath) {
  method [ParameterType.PluginArray] (line 806) | [ParameterType.PluginArray](value, option, configPath) {
  method [ParameterType.GlobArray] (line 813) | [ParameterType.GlobArray](value, option, configPath) {
  method [ParameterType.Map] (line 832) | [ParameterType.Map](value, option) {
  method [ParameterType.Mixed] (line 850) | [ParameterType.Mixed](value, option) {
  method [ParameterType.Object] (line 854) | [ParameterType.Object](value, option, _configPath, oldValue) {
  method [ParameterType.Flags] (line 861) | [ParameterType.Flags](value, option) {
  function convert (line 909) | function convert(
  method [ParameterType.String] (line 937) | [ParameterType.String](option) {
  method [ParameterType.Path] (line 940) | [ParameterType.Path](option) {
  method [ParameterType.UrlOrPath] (line 951) | [ParameterType.UrlOrPath](option) {
  method [ParameterType.Number] (line 963) | [ParameterType.Number](option) {
  method [ParameterType.Boolean] (line 966) | [ParameterType.Boolean](option) {
  method [ParameterType.Map] (line 969) | [ParameterType.Map](option) {
  method [ParameterType.Mixed] (line 972) | [ParameterType.Mixed](option) {
  method [ParameterType.Object] (line 975) | [ParameterType.Object](option) {
  method [ParameterType.Array] (line 978) | [ParameterType.Array](option) {
  method [ParameterType.PathArray] (line 981) | [ParameterType.PathArray](option) {
  method [ParameterType.ModuleArray] (line 987) | [ParameterType.ModuleArray](option) {
  method [ParameterType.PluginArray] (line 993) | [ParameterType.PluginArray](option) {
  method [ParameterType.GlobArray] (line 999) | [ParameterType.GlobArray](option) {
  method [ParameterType.Flags] (line 1002) | [ParameterType.Flags](option) {
  function getDefaultValue (line 1007) | function getDefaultValue(option: DeclarationOption) {
  function resolveModulePaths (line 1015) | function resolveModulePaths(modules: readonly string[], configPath: stri...
  function resolveModulePath (line 1019) | function resolveModulePath(path: string, configPath: string): Normalized...
  function isTsNumericEnum (line 1026) | function isTsNumericEnum(map: Record<string, any>) {
  function getMapError (line 1036) | function getMapError(
  function getBoundsError (line 1059) | function getBoundsError(
  function isFiniteNumber (line 1088) | function isFiniteNumber(value: unknown): value is number {
  function valueIsWithinBounds (line 1099) | function valueIsWithinBounds(

FILE: src/lib/utils/options/help.ts
  type ParameterHelp (line 5) | interface ParameterHelp {
  function hasHint (line 11) | function hasHint(
  function getParameterHelp (line 26) | function getParameterHelp(
  function toEvenColumns (line 58) | function toEvenColumns(values: string[], maxLineWidth: number) {
  function getOptionsHelp (line 79) | function getOptionsHelp(

FILE: src/lib/utils/options/options.ts
  type OptionsReader (line 24) | interface OptionsReader {
  class Options (line 98) | class Options {
    method constructor (line 112) | constructor() {
    method copyForPackage (line 119) | copyForPackage(packageDir: string): Options {
    method snapshot (line 144) | snapshot() {
    method restore (line 159) | restore(snapshot: { __optionSnapshot: never }) {
    method reset (line 171) | reset(name?: string): void {
    method addReader (line 197) | addReader(reader: OptionsReader): void {
    method read (line 201) | async read(
    method addDeclaration (line 227) | addDeclaration(declaration: Readonly<DeclarationOption>): void {
    method getDeclaration (line 244) | getDeclaration(name: string): Readonly<DeclarationOption> | undefined {
    method getDeclarations (line 251) | getDeclarations(): Readonly<DeclarationOption>[] {
    method isSet (line 261) | isSet(name: string): boolean {
    method getRawValues (line 273) | getRawValues(): Readonly<Partial<TypeDocOptionValues>> {
    method getValue (line 283) | getValue(name: string): unknown {
    method setValue (line 314) | setValue(name: string, value: unknown, configPath?: string): void {
    method getCompilerOptions (line 364) | getCompilerOptions(logger: Logger): ts.CompilerOptions {
    method fixCompilerOptions (line 369) | fixCompilerOptions(
    method getFileNames (line 405) | getFileNames(): readonly string[] {
    method getProjectReferences (line 412) | getProjectReferences(): readonly ts.ProjectReference[] {
    method setCompilerOptions (line 419) | setCompilerOptions(
    method getSimilarOptions (line 440) | getSimilarOptions(missingName: string): string[] {
    method getHelp (line 447) | getHelp() {
  function Option (line 457) | function Option<K extends keyof TypeDocOptionMap>(name: K) {

FILE: src/lib/utils/options/readers/arguments.ts
  constant ARRAY_OPTION_TYPES (line 6) | const ARRAY_OPTION_TYPES = new Set<ParameterType | undefined>([
  class ArgumentsReader (line 18) | class ArgumentsReader implements OptionsReader {
    method constructor (line 25) | constructor(priority: number, args = process.argv.slice(2)) {
    method ignoreErrors (line 30) | ignoreErrors() {
    method read (line 35) | read(container: Options, logger: Logger): void {

FILE: src/lib/utils/options/readers/package-json.ts
  class PackageJsonReader (line 9) | class PackageJsonReader implements OptionsReader {
    method read (line 18) | read(

FILE: src/lib/utils/options/readers/tsconfig.ts
  function isSupportForTags (line 15) | function isSupportForTags(obj: unknown): obj is Record<TagString, boolea...
  type TsDocSchema (line 48) | type TsDocSchema = Validation.Infer<typeof tsDocSchema>;
  class TSConfigReader (line 50) | class TSConfigReader implements OptionsReader {
    method read (line 62) | read(
    method addTagsFromTsdocJson (line 126) | private addTagsFromTsdocJson(
    method readTsDoc (line 185) | private readTsDoc(logger: Logger, path: string): TsDocSchema | undefin...
  function mergeConfigs (line 238) | function mergeConfigs(from: TsDocSchema, into: TsDocSchema) {

FILE: src/lib/utils/options/readers/typedoc.ts
  class TypeDocReader (line 17) | class TypeDocReader implements OptionsReader {
    method read (line 30) | async read(
    method readFile (line 58) | private async readFile(
    method findTypedocFile (line 156) | private findTypedocFile(
  function getStringArray (line 184) | function getStringArray(arg: unknown): string[] {

FILE: src/lib/utils/options/sources/typedoc.ts
  function makeTagArrayValidator (line 13) | function makeTagArrayValidator(name: keyof TypeDocOptionMap) {
  function addTypeDocOptions (line 22) | function addTypeDocOptions(options: Pick<Options, "addDeclaration">) {
  function isObject (line 1006) | function isObject(x: unknown): x is Record<string, unknown> {

FILE: src/lib/utils/package-manifest.ts
  function hasOwnProperty (line 15) | function hasOwnProperty<K extends PropertyKey>(
  function loadPackageManifest (line 25) | function loadPackageManifest(
  function getPackagePaths (line 44) | function getPackagePaths(
  function expandPackages (line 73) | function expandPackages(

FILE: src/lib/utils/paths.ts
  class MinimatchSet (line 5) | class MinimatchSet {
    method constructor (line 8) | constructor(patterns: GlobString[]) {
    method matchesAny (line 12) | matchesAny(path: string) {
  function escapeGlob (line 19) | function escapeGlob(glob: string) {
  function isGlobalGlob (line 23) | function isGlobalGlob(glob: string) {
  function splitGlobToPathAndSpecial (line 28) | function splitGlobToPathAndSpecial(glob: string): { modifiers: string; p...
  function createGlobString (line 64) | function createGlobString(relativeTo: NormalizedPath, glob: string): Glo...
  function getCommonPath (line 80) | function getCommonPath(files: readonly string[]): NormalizedPath {
  function getCommonDirectory (line 102) | function getCommonDirectory(files: readonly string[]): NormalizedPath {
  function deriveRootDir (line 109) | function deriveRootDir(globPaths: GlobString[]): NormalizedPath {
  function nicePath (line 128) | function nicePath(absPath: string) {
  function normalizePath (line 144) | function normalizePath(path: string): NormalizedPath {

FILE: src/lib/utils/perf.ts
  function bench (line 5) | function bench<T extends (..._: any) => any>(
  function BenchField (line 48) | function BenchField<T extends (..._: any) => any>(
  function BenchMethod (line 68) | function BenchMethod<T extends (..._: any) => any>(
  function measure (line 95) | function measure<T>(cb: () => T): T {

FILE: src/lib/utils/plugins.ts
  function loadPlugins (line 8) | async function loadPlugins(
  function getPluginDisplayName (line 64) | function getPluginDisplayName(plugin: NormalizedPathOrModuleOrFunction) {

FILE: src/lib/utils/reflections.ts
  function discoverAllReferenceTypes (line 13) | function discoverAllReferenceTypes(

FILE: src/lib/utils/sort.ts
  constant SORT_STRATEGIES (line 12) | const SORT_STRATEGIES = [
  type SortStrategy (line 29) | type SortStrategy = (typeof SORT_STRATEGIES)[number];
  method "source-order" (line 40) | "source-order"(a, b) {
  method alphabetical (line 71) | alphabetical(a, b) {
  method "alphabetical-ignoring-documents" (line 74) | "alphabetical-ignoring-documents"(a, b) {
  method "enum-value-ascending" (line 83) | "enum-value-ascending"(a, b) {
  method "enum-value-descending" (line 98) | "enum-value-descending"(a, b) {
  method "enum-member-source-order" (line 113) | "enum-member-source-order"(a, b, data) {
  method "static-first" (line 122) | "static-first"(a, b) {
  method "instance-first" (line 125) | "instance-first"(a, b) {
  method visibility (line 128) | visibility(a, b) {
  method "required-first" (line 143) | "required-first"(a, b) {
  method kind (line 146) | kind(a, b, { kindSortOrder }) {
  method "external-last" (line 149) | "external-last"(a, b) {
  method "documents-first" (line 152) | "documents-first"(a, b) {
  method "documents-last" (line 158) | "documents-last"(a, b) {
  function isValidSortStrategy (line 166) | function isValidSortStrategy(strategy: string): strategy is SortStrategy {
  function getSortFunction (line 170) | function getSortFunction(opts: Options, strategies: readonly SortStrateg...

FILE: src/lib/utils/tsconfig.ts
  function findTsConfigFile (line 7) | function findTsConfigFile(
  function getTypeDocOptionsFromTsConfig (line 29) | function getTypeDocOptionsFromTsConfig(file: string): any {
  function readTsConfig (line 67) | function readTsConfig(

FILE: src/lib/utils/tsutils.ts
  function getQualifiedName (line 3) | function getQualifiedName(symbol: ts.Symbol, defaultName: string) {
  function getHumanName (line 19) | function getHumanName(name: string) {

FILE: src/lib/validation/documentation.ts
  function validateDocumentation (line 10) | function validateDocumentation(

FILE: src/lib/validation/exports.ts
  function makeIntentionallyExportedHelper (line 6) | function makeIntentionallyExportedHelper(
  function validateExports (line 62) | function validateExports(

FILE: src/lib/validation/links.ts
  function getBrokenPartLinks (line 14) | function getBrokenPartLinks(parts: readonly CommentDisplayPart[]) {
  function getBrokenLinks (line 30) | function getBrokenLinks(comment: Comment | undefined) {
  function validateLinks (line 41) | function validateLinks(
  function checkReflection (line 50) | function checkReflection(reflection: Reflection, logger: Logger) {
  function reportBrokenCommentLink (line 118) | function reportBrokenCommentLink(broken: InlineTagDisplayPart, reflectio...

FILE: src/lib/validation/unusedMergeModuleWith.ts
  function validateMergeModuleWith (line 4) | function validateMergeModuleWith(

FILE: src/test/Repository.test.ts
  function git (line 9) | function git(cwd: string, ...args: string[]) {
  function createRepo (line 187) | function createRepo(path: string) {

FILE: src/test/TestLogger.ts
  class TestLogger (line 12) | class TestLogger extends Logger {
    method reset (line 15) | reset() {
    method expectMessage (line 21) | expectMessage(message: string) {
    method expectNoMessage (line 33) | expectNoMessage(message: string) {
    method expectNoOtherMessages (line 44) | expectNoOtherMessages() {
    method log (line 57) | override log(message: string, level: LogLevel): void {
  function createRegex (line 63) | function createRegex(s: string) {

FILE: src/test/behavior.c2.test.ts
  type NameTree (line 17) | type NameTree = { [name: string]: NameTree | undefined };
  function buildNameTree (line 19) | function buildNameTree(
  function getLinks (line 31) | function getLinks(refl: Reflection) {
  function getLinkTexts (line 52) | function getLinkTexts(refl: Reflection) {
  function convert (line 63) | function convert(...entries: [string, ...string[]]) {

FILE: src/test/comments.test.ts
  function lex (line 21) | function lex(text: string): Token[] {
  function lexNoPos (line 24) | function lexNoPos(text: string): Omit<Token, "pos">[] {
  function lex (line 580) | function lex(text: string): Token[] {
  function lexNoPos (line 592) | function lexNoPos(text: string): Omit<Token, "pos">[] {
  function lex (line 945) | function lex(text: string): Token[] {
  function lexNoPos (line 948) | function lexNoPos(text: string): Omit<Token, "pos">[] {
  function getComment (line 1264) | function getComment(text: string) {
  function getComment (line 1910) | function getComment(text: string) {

FILE: src/test/converter.test.ts
  method supports (line 28) | supports(x) {
  method toObject (line 31) | toObject(ref: ReferenceType, obj: any) {
  method supports (line 40) | supports(x) {
  method toObject (line 43) | toObject(comment: Comment, obj: JSONOutput.Comment) {
  method supports (line 57) | supports(x) {
  method toObject (line 60) | toObject(tag: any, obj: JSONOutput.CommentTag) {
  method supports (line 76) | supports(x) {
  method toObject (line 79) | toObject(refl, obj: any) {
  method supports (line 89) | supports(x) {
  method toObject (line 92) | toObject(refl: ReferenceReflection, obj: any) {
  method supports (line 99) | supports(x) {
  method toObject (line 102) | toObject(refl: ReflectionCategory | ReflectionGroup, obj: any) {
  method supports (line 109) | supports(obj) {
  method toObject (line 112) | toObject(
  method supports (line 129) | supports(obj) {
  method toObject (line 132) | toObject(project: ProjectReflection, obj: JSONOutput.ProjectReflection) {
  method supports (line 144) | supports(obj) {
  method toObject (line 147) | toObject(_media: FileRegistry, obj: JSONOutput.FileRegistry) {

FILE: src/test/converter/alias/alias.ts
  type TCompareFunction (line 6) | type TCompareFunction<T> = (a: T, b: T) => number;
  type TId (line 11) | type TId = number | string;
  type IsString (line 16) | type IsString<T> = T extends string ? "string" : "not string";
  type PromiseType (line 21) | type PromiseType<T> = T extends PromiseLike<infer U> ? U : T;
  type MergedCrossReference (line 26) | type MergedCrossReference = TestClass;

FILE: src/test/converter/class/access.ts
  function fakePrivateFunction (line 17) | function fakePrivateFunction() {}
  function fakeProtectedFunction (line 23) | function fakeProtectedFunction() {}
  class PrivateClass (line 29) | class PrivateClass {
    method fakePrivateMethod (line 46) | fakePrivateMethod() {}
    method fakeProtectedMethod (line 52) | fakeProtectedMethod() {}
    method constructor (line 57) | constructor() {}
    method privateStaticGetter (line 59) | private static get privateStaticGetter() {

FILE: src/test/converter/class/class.ts
  class TestClass (line 8) | class TestClass {
    method constructor (line 27) | constructor() {}
    method publicMethod (line 34) | public publicMethod() {}
    method protectedMethod (line 41) | protected protectedMethod() {}
    method privateMethod (line 48) | private privateMethod() {}
    method staticMethod (line 53) | static staticMethod() {}
  class TestSubClass (line 61) | class TestSubClass extends TestClass {
    method publicMethod (line 65) | public publicMethod() {}
    method protectedMethod (line 70) | protected protectedMethod() {}
    method constructor (line 80) | constructor(
  class TestAbstractClassImplementation (line 96) | class TestAbstractClassImplementation extends TestAbstractClass {
    method myAbstractMethod (line 99) | protected myAbstractMethod(): void {}
  type TestSubClass (line 102) | interface TestSubClass {
    method publicMethod (line 65) | public publicMethod() {}
    method protectedMethod (line 70) | protected protectedMethod() {}
    method constructor (line 80) | constructor(
  function staticMergedMethod (line 113) | function staticMergedMethod() {}
  class ComputedNames (line 118) | class ComputedNames {
  class Ts38PrivateFields (line 125) | class Ts38PrivateFields {
  type AbstractMe (line 135) | type AbstractMe = abstract new () => Abstract;

FILE: src/test/converter/class/constructor-properties.ts
  class Vector2 (line 4) | class Vector2 {
    method constructor (line 10) | constructor(
  class Vector3 (line 20) | class Vector3 extends Vector2 {
    method constructor (line 27) | constructor(

FILE: src/test/converter/class/decorators.ts
  class DecoratedClass (line 7) | class DecoratedClass {
    method decoratedMethod (line 13) | decoratedMethod() {}
  function decoratorAtom (line 19) | function decoratorAtom(
  function decoratorWithParam (line 32) | function decoratorWithParam(value: boolean): MethodDecorator {
  function decoratorWithOptions (line 48) | function decoratorWithOptions(options: {

FILE: src/test/converter/class/events-overloads.ts
  type Test (line 6) | interface Test {

FILE: src/test/converter/class/events.ts
  class EventDispatcher (line 1) | class EventDispatcher {

FILE: src/test/converter/class/generic-class.ts
  class GenericClass (line 5) | class GenericClass<T> {
    method constructor (line 20) | constructor(value: T) {
    method getValue (line 28) | getValue(): T {
  class NonGenericClass (line 36) | class NonGenericClass extends GenericClass<string> {}

FILE: src/test/converter/class/getter-setter.ts
  class GetterSetter (line 1) | class GetterSetter {
    method name (line 4) | get name(): string {
    method name (line 7) | set name(value: string) {
    method readOnlyName (line 11) | get readOnlyName(): string {
    method writeOnlyName (line 15) | set writeOnlyName(value: string) {
  type Ts51UnrelatedAccessorTypes (line 25) | interface Ts51UnrelatedAccessorTypes {

FILE: src/test/converter/class/type-operator.ts
  class TestClass (line 8) | class TestClass {
  class GenericClass (line 13) | class GenericClass<T extends keyof TestClass> {

FILE: src/test/converter/comment/comment.ts
  class CommentedClass (line 38) | class CommentedClass {
    method hidden (line 53) | hidden(...args: any[]): void {}
    method hiddenWithImplementation (line 60) | hiddenWithImplementation(...args: any[]): void {}
    method multipleHidden (line 72) | multipleHidden(...args: any[]): void {}
    method mixedHidden (line 83) | mixedHidden(...args: any[]): void {}
  type UnionWithCommentsOnMembers (line 91) | type UnionWithCommentsOnMembers =

FILE: src/test/converter/comment/comment2.ts
  function multiply (line 8) | function multiply(a: number, b: number) {

FILE: src/test/converter/comment/comment3.ts
  function multiply (line 8) | function multiply(a: number, b: number) {

FILE: src/test/converter/comment/comment4.ts
  function multiply (line 11) | function multiply(a: number, b: number) {

FILE: src/test/converter/declaration/declaration.d.ts
  class Decl (line 1) | class Decl {

FILE: src/test/converter/declaration/export-declaration.d.ts
  class Exported (line 1) | class Exported {}
  class NotExported (line 3) | class NotExported {}

FILE: src/test/converter/enum/enum.ts
  type SimpleEnum (line 4) | enum SimpleEnum {
  type ModuleEnum (line 24) | enum ModuleEnum {
  function enumFunction (line 53) | function enumFunction() {}
  type ConstEnum (line 59) | const enum ConstEnum {

FILE: src/test/converter/exports/export-assignment.ts
  function add (line 1) | function add(x: number, y: number) {

FILE: src/test/converter/exports/export-with-local.ts
  function add (line 6) | function add(x: number, y: number) {

FILE: src/test/converter/exports/export.ts
  function add (line 7) | function add(x: number, y: number) {
  type Foo (line 31) | type Foo = import("./mod").GH1453Helper;

FILE: src/test/converter/exports/mod.ts
  type GH1453Helper (line 42) | type GH1453Helper = `1`;

FILE: src/test/converter/function/function.ts
  function exportedFunction (line 4) | function exportedFunction(): void {}
  function functionWithParameters (line 23) | function functionWithParameters(
  function functionWithOptionalValue (line 47) | function functionWithOptionalValue(
  function functionWithDefaults (line 62) | function functionWithDefaults(
  function functionWithRest (line 78) | function functionWithRest(...rest: string[]): string {
  function multipleSignatures (line 105) | function multipleSignatures(): string {
  function moduleFunction (line 122) | function moduleFunction(arg: string): string {
  function assertionFunction (line 131) | function assertionFunction(condition: boolean): asserts condition {}
  function checkerFunction (line 137) | function checkerFunction(anything: any): anything is string {
  function assertIsNonNull (line 145) | function assertIsNonNull<T>(
  function isNonNull (line 157) | function isNonNull<T>(arg: T | null | undefined): arg is T {
  function append (line 173) | function append() {}
  function prepend (line 178) | function prepend() {}
  class Predicates (line 181) | class Predicates {
    method isString (line 182) | static isString(x: unknown): x is string {
    method isString (line 185) | isString(): this is string {
    method assert (line 188) | static assert(x: unknown): asserts x {}
    method assertString (line 189) | assertString(): asserts this is string {}
  function boolOrUndef (line 203) | function boolOrUndef(x: number) {
  function merged (line 209) | function merged() {}

FILE: src/test/converter/function/generic-function.ts
  function genericFunction (line 7) | function genericFunction<T extends Object>(value: T): T {
  function functionWithGenericArrayParameter (line 18) | function functionWithGenericArrayParameter<T>(
  function functionWithTemplate (line 29) | function functionWithTemplate<T>(param: T): T {

FILE: src/test/converter/function/implicit-types.ts
  type BreakpointRange (line 1) | interface BreakpointRange {
  function getBreakpoints (line 14) | function getBreakpoints() {

FILE: src/test/converter/inherit-param-doc/inherit-param-doc.ts
  type Base (line 1) | interface Base {
  class Class1 (line 14) | class Class1 implements Base {
    method method1 (line 16) | method1(a: number, b: string): void {}
    method method2 (line 18) | method2(): void {}
  class Class2 (line 21) | class Class2 implements Base {
    method method1 (line 27) | method1(a: number, b: string): void {}
    method method2 (line 33) | method2(a: number): void {}
  class Class3 (line 36) | class Class3 implements Base {
    method method1 (line 42) | method1(a: number, c: string): void {}
    method method2 (line 43) | method2(a: number): void {}

FILE: src/test/converter/inheritance/inherit-doc.ts
  type InterfaceSource (line 6) | interface InterfaceSource<T> {
  type InterfaceTarget (line 25) | interface InterfaceTarget<T> {
  function functionSource (line 57) | function functionSource<T>(arg1: T, arg2: T): string {
  function functionTargetLocal (line 75) | function functionTargetLocal<T>(arg1: T, arg2: T) {

FILE: src/test/converter/inheritance/mergable-class.ts
  type MyCtor (line 1) | interface MyCtor {
  type My (line 6) | interface My {
  class MySubClass (line 12) | class MySubClass extends My {}

FILE: src/test/converter/interface/constructor-type.ts
  type Constructor (line 1) | interface Constructor {
  type Instance (line 12) | interface Instance {}

FILE: src/test/converter/interface/index-signature.ts
  type StrIndex (line 1) | interface StrIndex {
  type NumIndex (line 5) | interface NumIndex {
  type BothIndex (line 9) | interface BothIndex {
  type TypeIndex (line 16) | type TypeIndex = { [x: string]: 1 };

FILE: src/test/converter/interface/interface-empty.ts
  type EmptyInterface (line 4) | interface EmptyInterface {}
  class ClassImplementingEmptyInterface (line 9) | class ClassImplementingEmptyInterface implements EmptyInterface {
    method goto (line 11) | public goto() {}

FILE: src/test/converter/interface/interface-implementation.ts
  type EventListener (line 5) | interface EventListener<T> {
  type SubscriptionInt (line 13) | interface SubscriptionInt<T> {
  class Subscription (line 24) | class Subscription<V> implements SubscriptionInt<V> {
    method constructor (line 25) | constructor(
    method unsubscribe (line 32) | unsubscribe(): void {}
  type EventDispatcherInt (line 40) | interface EventDispatcherInt<U> {
  class EventDispatcher (line 56) | class EventDispatcher<T> implements EventDispatcherInt<T> {
    method add (line 59) | add(
    method remove (line 67) | remove(subscription: SubscriptionInt<T>): void {}
    method dispatch (line 69) | dispatch(event: T): boolean {
    method clear (line 73) | clear(): void {}
    method hasListeners (line 75) | hasListeners(): boolean {

FILE: src/test/converter/interface/merging.ts
  type Base (line 1) | interface Base {
  type Base2 (line 5) | interface Base2 {
  type Child (line 9) | interface Child extends Base, Base2 {
  type Child (line 14) | interface Child extends Base {
  type Child2 (line 18) | interface Child2 extends Child, Base {

FILE: src/test/converter/mixin/mixin.ts
  type AnyFunction (line 4) | type AnyFunction<A = any> = (...input: any[]) => A;
  type AnyConstructor (line 9) | type AnyConstructor<A = object> = new (...input: any[]) => A;
  type Mixin (line 14) | type Mixin<T extends AnyFunction> = InstanceType<ReturnType<T>>;
  class Base (line 19) | class Base {
    method baseMethod (line 22) | baseMethod(): number {
  method method1 (line 37) | method1(arg: Mixin1Type[]): Mixin1Type[] {
  type Mixin1Type (line 45) | interface Mixin1Type extends Mixin<typeof Mixin1Func> {}
  method method2 (line 57) | method2(arg: Mixin2Type): Mixin2Type {
  type Mixin2Type (line 65) | interface Mixin2Type extends Mixin<typeof Mixin2> {}
  type Mixin3 (line 80) | type Mixin3 = Mixin<typeof Mixin3>;
  class SomeClassWithMixin (line 85) | class SomeClassWithMixin extends Mixin2(Mixin1Func(Base)) {
    method classWithMixinMethod (line 88) | classWithMixinMethod(): string {

FILE: src/test/converter/react/react.tsx
  type IntrinsicElements (line 4) | interface IntrinsicElements {
  type DemoProps (line 12) | interface DemoProps {
  class Demo (line 17) | class Demo {
    method constructor (line 20) | constructor(props: DemoProps) {
    method render (line 25) | render() {

FILE: src/test/converter/types/general.ts
  type BigIntLiteral (line 3) | type BigIntLiteral = 1n;
  type NegativeBigIntLiteral (line 6) | type NegativeBigIntLiteral = -1n;
  type NumArray (line 9) | type NumArray = number[];
  type BigIntAlias (line 12) | type BigIntAlias = bigint;
  type NegativeOne (line 14) | type NegativeOne = -1;
  type FirstIfString (line 17) | type FirstIfString<T extends unknown[]> = T extends [

FILE: src/test/converter/types/index-signature.ts
  type SymbolIndex (line 1) | interface SymbolIndex {
  type PartialIndex (line 5) | interface PartialIndex {
  type UnionIndex (line 9) | interface UnionIndex {
  type ReadonlyIndex (line 14) | interface ReadonlyIndex {
  class A (line 21) | class A {
    method [symbolMethodName] (line 22) | [symbolMethodName]() {
    method [symbolPropertyName] (line 25) | [symbolPropertyName]() {

FILE: src/test/converter/types/mapped.ts
  function mapped (line 1) | function mapped<T>(arg: T) {
  type Mappy (line 5) | type Mappy<T> = { [K in keyof T]: T[K] };
  type DoubleKey (line 7) | type DoubleKey<T> = { [K in keyof T & string as `${K}${K}`]: T[K] };
  function doubleKey (line 9) | function doubleKey<T>(arg: T) {

FILE: src/test/converter/types/parens.ts
  type ZZ (line 3) | type ZZ = (1 & { a: string });

FILE: src/test/converter/types/query.ts
  type TypeOfX (line 3) | type TypeOfX = typeof x;

FILE: src/test/converter/types/tuple.ts
  type NamedTuple (line 1) | type NamedTuple = [name: string, optionalName?: number];
  type WithRestType (line 5) | type WithRestType = [1, ...2[]];
  type WithRestTypeNames (line 8) | type WithRestTypeNames = [a: 123, ...b: 456[]];
  type WithOptionalElements (line 11) | type WithOptionalElements = [1, 2?, 3?];
  type LeadingRest (line 14) | type LeadingRest = [...string[], number];
  type Empty (line 18) | type Empty = [];
  function returnMapped (line 21) | function returnMapped<T>() {

FILE: src/test/converter/types/type-operator.ts
  type B (line 2) | type B = readonly number[];
  type C (line 3) | type C = {
  type D (line 7) | type D = keyof C;

FILE: src/test/converter/types/union-or-intersection.ts
  type FirstType (line 4) | interface FirstType {
  type SecondType (line 14) | interface SecondType {
  type ThirdType (line 24) | interface ThirdType {

FILE: src/test/converter/variables/array.ts
  class Array (line 4) | class Array<T> {}
  class Foo (line 19) | class Foo {}
  class FooList (line 24) | class FooList extends Array<Foo> {}

FILE: src/test/converter/variables/destructuring.ts
  function drawText (line 41) | function drawText({

FILE: src/test/converter2/behavior/cascadedModifiers.ts
  class AlsoBeta (line 5) | class AlsoBeta {
    method betaFish (line 6) | betaFish() {}
    method alphaFish (line 9) | alphaFish() {}

FILE: src/test/converter2/behavior/categoryInheritance.ts
  type Int (line 5) | interface Int {
  class Cls (line 10) | class Cls implements Int {

FILE: src/test/converter2/behavior/classTag.ts
  type CallableClass (line 37) | type CallableClass = any;

FILE: src/test/converter2/behavior/constNamespace.ts
  method b (line 9) | b() {

FILE: src/test/converter2/behavior/constTypeParam.ts
  type HasNames (line 1) | type HasNames = { names: readonly string[] };
  function getNamesExactly (line 2) | function getNamesExactly<const T extends HasNames>(arg: T): T["names"] {

FILE: src/test/converter2/behavior/ctorTypeParam.ts
  class Generic (line 4) | class Generic<T> {
    method constructor (line 9) | constructor(x?: string) {}

FILE: src/test/converter2/behavior/declareGlobal.ts
  type DeclareGlobal (line 4) | interface DeclareGlobal {

FILE: src/test/converter2/behavior/destructuredParamRenames.ts
  function singleParam (line 5) | function singleParam({ a }: { a: string }) {
  function extraParam (line 12) | function extraParam({ a }: { a: string }, extraParameter: string) {
  function extraParamComment (line 20) | function extraParamComment({ a }: { a: string }) {
  function multiParam (line 28) | function multiParam(

FILE: src/test/converter2/behavior/duplicateHeritageClauses.ts
  type A (line 1) | interface A {
  type B (line 5) | interface B extends A {}
  type B (line 6) | interface B extends A {
  type C (line 10) | interface C extends A {}
  class C (line 11) | class C implements A {}
  type D (line 13) | interface D extends Record<"a", 1> {}
  type D (line 14) | interface D extends Record<"a", 1>, Record<"b", 1> {}

FILE: src/test/converter2/behavior/excludeNotDocumentedKinds.ts
  type NotDoc (line 1) | interface NotDoc {
  function identity (line 9) | function identity<T>(x: T): T {

FILE: src/test/converter2/behavior/externalSymbols.ts
  type P (line 7) | type P = Promise<string>;

FILE: src/test/converter2/behavior/groupInheritance.ts
  type Int (line 1) | interface Int {
  class Cls (line 6) | class Cls implements Int {

FILE: src/test/converter2/behavior/hiddenAccessor.ts
  class Test (line 1) | class Test {
    method x (line 2) | get x() {
    method y (line 6) | get y() {
    method y (line 10) | set y(v) {}
    method z (line 13) | get z() {

FILE: src/test/converter2/behavior/hideconstructor.ts
  class StaticOnly (line 4) | class StaticOnly {
    method foo (line 5) | static foo() {}
  class IgnoredCtor (line 11) | class IgnoredCtor {
    method constructor (line 13) | constructor() {}

FILE: src/test/converter2/behavior/hierarchy.ts
  type Foundation (line 2) | interface Foundation {}
  type Base (line 3) | interface Base extends Foundation {}
  type Branch (line 4) | interface Branch extends Base {}
  type Base2 (line 5) | interface Base2 {}
  type Combined (line 6) | interface Combined extends Branch, Base2 {}
  type CombinedChild (line 7) | interface CombinedChild extends Combined {}
  type CombinedChild2 (line 8) | interface CombinedChild2 extends Combined {}
  type Base3 (line 9) | interface Base3 {}
  type CombinedGrandchild (line 10) | interface CombinedGrandchild extends CombinedChild2, Base3 {}
  type DiamondDiamond (line 11) | interface DiamondDiamond extends CombinedChild, CombinedGrandchild {}
  type Foundation (line 15) | interface Foundation<T> {}
  type Base (line 16) | interface Base<TItem> extends Foundation<TItem> {}
  type Item (line 17) | interface Item {}
  type Child (line 18) | interface Child extends Base<Item[]> {}

FILE: src/test/converter2/behavior/highlightedProperties.ts
  type MyOptions (line 1) | type MyOptions = {
  function fn1 (line 10) | function fn1(options: MyOptions) {}
  type NotExported (line 12) | type NotExported = {
  function fn2 (line 21) | function fn2(options: NotExported) {}
  type InterfaceRef (line 23) | interface InterfaceRef {
  function fn3 (line 32) | function fn3(options: InterfaceRef) {}

FILE: src/test/converter2/behavior/includeTag/includeTagDedent.ts
  function doTest (line 8) | function doTest() {

FILE: src/test/converter2/behavior/includeTag/includeTagMultipleRegions.ts
  function doTest (line 8) | function doTest() {

FILE: src/test/converter2/behavior/inheritDocBasic.ts
  type InterfaceSource (line 6) | interface InterfaceSource<T> {
  type InterfaceTarget (line 22) | interface InterfaceTarget<T> {

FILE: src/test/converter2/behavior/inheritDocJsdoc.ts
  class Foo (line 2) | class Foo {
    method member (line 7) | member(x: number) {}
  class Bar (line 11) | class Bar implements Foo {
    method member (line 13) | member(x: number) {}
  class Baz (line 16) | class Baz extends Foo {
    method member (line 18) | override member(x: number): void {}

FILE: src/test/converter2/behavior/inheritDocRecursive.ts
  type A (line 2) | interface A {
  type B (line 7) | interface B {
  type C (line 12) | interface C {

FILE: src/test/converter2/behavior/inheritDocSignature.ts
  class SigRef (line 4) | class SigRef {
    method method (line 9) | method(x?: string) {
    method test1 (line 21) | test1(x?: string) {
    method test2 (line 26) | test2() {}

FILE: src/test/converter2/behavior/inlineTag.ts
  type Foo (line 2) | type Foo = { inlined: true };
  type Bar (line 4) | type Bar = { inlined: false };
  type Complex (line 7) | type Complex<T> = { real: T; imag: T };
  function foo (line 9) | function foo(param: Foo): Complex<number> {
  function genericInline (line 13) | function genericInline<T>(): Complex<T> {
  function bar (line 18) | function bar(param: Record<string, Foo>) {}
  function bar2 (line 22) | function bar2(param: Record<string, Foo>) {}
  class Class (line 24) | class Class {
    method foo (line 26) | foo(param: Foo): Complex<number> {
    method bar (line 31) | bar(param: Record<string, Foo>) {}
    method baz (line 38) | baz(param: Foo): Complex<number> {
  function selectiveInline (line 44) | function selectiveInline(bar: Bar) {

FILE: src/test/converter2/behavior/linkResolution.ts
  type abc (line 4) | type abc = 1;
  type abc (line 9) | type abc = 2;
  function bar (line 13) | function bar(x?: number): number | undefined {
  type Bar (line 19) | interface Bar {
  type A (line 59) | enum A {
  class B (line 67) | class B {
    method constructor (line 70) | constructor(_?: number) {}
  type C (line 78) | interface C {}
  type D (line 80) | type D = 123;
  function E (line 84) | function E(x?: number) {
  type G (line 90) | interface G {}
  class Child (line 117) | class Child {
    method foo (line 121) | static foo() {}
  type GH2808DeeplyNestedLink (line 129) | interface GH2808DeeplyNestedLink {

FILE: src/test/converter2/behavior/namedTupleMembers.ts
  type PartiallyNamedTuple (line 1) | type PartiallyNamedTuple = [name: string, number];
  type PartiallyNamedTuple2 (line 3) | type PartiallyNamedTuple2 = [name?: string, number?];
  type PartiallyNamedTupleRest (line 5) | type PartiallyNamedTupleRest = [name?: string, ...number[]];

FILE: src/test/converter2/behavior/noInfer.ts
  function createStreetLight (line 1) | function createStreetLight<C extends string>(

FILE: src/test/converter2/behavior/overloadTags.js
  function printValue (line 18) | function printValue(value, maximumFractionDigits) {}

FILE: src/test/converter2/behavior/overloads.ts
  function foo (line 12) | function foo(x?: string): string | number {
  function bar (line 24) | function bar(x?: string) {
  function badLabel (line 31) | function badLabel() {}

FILE: src/test/converter2/behavior/readonlyTag.ts
  class Book (line 1) | class Book {
    method title (line 7) | get title(): string {
    method title (line 11) | set title(_value: string) {

FILE: src/test/converter2/behavior/refusingToRecurse.ts
  type OptionalKeys (line 1) | type OptionalKeys<T> = {
  type FromSchema (line 5) | type FromSchema<T> = T extends typeof String ? string :
  type Schema (line 26) | type Schema = FromSchema<typeof schema>;
  type ExpressionSpecification (line 30) | type ExpressionSpecification =
  class Map (line 38) | class Map {
    method getFilter (line 39) | getFilter(layerId: string): ExpressionSpecification | void {

FILE: src/test/converter2/behavior/removeReflection.ts
  function foo (line 1) | function foo(first: string, second: string, third: string) {
  function nested (line 7) | function nested(a: 1 | { a; 1 }) {}
  type Base (line 9) | interface Base {}
  type Hidden (line 11) | interface Hidden extends Base {}
  type NotHidden (line 12) | interface NotHidden extends Hidden {}
  class NotHiddenImpl (line 14) | class NotHiddenImpl implements Hidden {}

FILE: src/test/converter2/behavior/resolutionMode.ts
  type MergedType (line 7) | interface MergedType extends TypeFromRequire, TypeFromImport {}

FILE: src/test/converter2/behavior/router.ts
  type Foo (line 1) | interface Foo {
  type Obj (line 15) | type Obj = { a: string };
  type ObjArray (line 21) | type ObjArray = { b: string }[];
  function Func (line 23) | function Func(param: string): { noUrl: boolean } {
  function func (line 28) | function func() {}

FILE: src/test/converter2/behavior/sortStrategyTag.ts
  function c (line 4) | function c() {}
  function c (line 10) | function c() {}
  function a (line 18) | function a() {}

FILE: src/test/converter2/behavior/thisType.ts
  class ThisClass (line 1) | class ThisClass {
    method returnThis (line 3) | returnThis(): this {
    method paramThis (line 8) | paramThis(x: this) {}
    method returnThisImplicit (line 14) | returnThisImplicit() {

FILE: src/test/converter2/behavior/typeAliasInterface.ts
  type Foo (line 4) | type Foo = {
  type Bar (line 20) | type Bar = {

FILE: src/test/converter2/behavior/useDeclaredTypeTag.ts
  function getData (line 1) | function getData() {
  type Data (line 6) | type Data = ReturnType<typeof getData>;

FILE: src/test/converter2/issues/gh1124.d.ts
  type PrimitiveType (line 2) | type PrimitiveType = boolean | string | number | Date;

FILE: src/test/converter2/issues/gh1150.ts
  type PopFront (line 4) | type PopFront<T extends any[]> = ((...args: T) => any) extends (
  type IntersectFirst (line 10) | type IntersectFirst<T extends any[], R = {}> = {

FILE: src/test/converter2/issues/gh1164.ts
  function gh1164 (line 6) | function gh1164(scope: string) {

FILE: src/test/converter2/issues/gh1215.d.ts
  class Foo (line 1) | class Foo {

FILE: src/test/converter2/issues/gh1255.js
  class C (line 1) | class C {
    method constructor (line 2) | constructor() {

FILE: src/test/converter2/issues/gh1261.ts
  class X (line 1) | class X {
    method constructor (line 6) | constructor(readonly prop: number) {}

FILE: src/test/converter2/issues/gh1330.ts
  type ExampleParam (line 1) | type ExampleParam = Example;
  type Example (line 2) | interface Example<T extends ExampleParam = ExampleParam> {}
  type HasProp (line 11) | type HasProp<T> = { key: T };

FILE: src/test/converter2/issues/gh1366.d.ts
  type Foo (line 1) | interface Foo {

FILE: src/test/converter2/issues/gh1449.ts
  function gh1449 (line 1) | function gh1449<T extends [foo: any, bar?: any]>(a: T): T {

FILE: src/test/converter2/issues/gh1454.ts
  type Foo (line 1) | type Foo = string | number;
  type Bar (line 2) | type Bar = string | number;

FILE: src/test/converter2/issues/gh1462.ts
  method method (line 3) | method() {}

FILE: src/test/converter2/issues/gh1481.js
  class GH1481 (line 1) | class GH1481 {}

FILE: src/test/converter2/issues/gh1483.js
  function gh1483 (line 1) | function gh1483() {}
  function gh1483_2 (line 6) | function gh1483_2() {}

FILE: src/test/converter2/issues/gh1490.ts
  type GH1490 (line 1) | interface GH1490 {

FILE: src/test/converter2/issues/gh1509.ts
  type Foo (line 1) | interface Foo {
  type PartialFoo (line 5) | interface PartialFoo extends Partial<Foo> {}
  type ReadonlyFoo (line 6) | interface ReadonlyFoo extends Readonly<Partial<Foo>> {}

FILE: src/test/converter2/issues/gh1514.ts
  constant UNIQUE_SYMBOL (line 1) | const UNIQUE_SYMBOL = Symbol();
  type ComputedUniqueName (line 3) | interface ComputedUniqueName {

FILE: src/test/converter2/issues/gh1534.ts
  function gh1534 (line 1) | function gh1534(rt: readonly [number, string]) {}

FILE: src/test/converter2/issues/gh1547.ts
  type ThingA (line 1) | interface ThingA {
  type ThingB (line 5) | interface ThingB {
  type Things (line 9) | type Things = ThingA | ThingB;
  type ValueOrArray (line 11) | type ValueOrArray<T> = T | Array<ValueOrArray<T>>;
  class Test (line 16) | class Test {
    method log_thing (line 22) | log_thing(things: ValueOrArray<Things>): void {}

FILE: src/test/converter2/issues/gh1580.ts
  class A (line 6) | class A {
    method run (line 11) | run(): void {}
  class B (line 14) | class B extends A {
    method run (line 17) | run(): void {

FILE: src/test/converter2/issues/gh1624.ts
  type Bar (line 1) | interface Bar {
  class Foo (line 6) | class Foo implements Bar {
    method baz (line 7) | baz(): number {

FILE: src/test/converter2/issues/gh1626.ts
  class Foo (line 1) | class Foo {
    method constructor (line 2) | constructor() {}

FILE: src/test/converter2/issues/gh1660.ts
  type SomeType (line 5) | type SomeType = typeof m.SomeClass.someProp;

FILE: src/test/converter2/issues/gh1733.ts
  type Foo (line 4) | type Foo<T> = T;
  class Bar (line 9) | class Bar<T> {}

FILE: src/test/converter2/issues/gh1734.ts
  type Foo (line 4) | type Foo = (arg: string) => string;

FILE: src/test/converter2/issues/gh1745.ts
  type Foo (line 4) | type Foo<T, R> = (data: T) => R;

FILE: src/test/converter2/issues/gh1771.ts
  class Test (line 1) | class Test {
    method method (line 2) | method() {}

FILE: src/test/converter2/issues/gh1795.ts
  function foo (line 1) | function foo() {}

FILE: src/test/converter2/issues/gh1804.js
  function foo (line 4) | function foo(arg) {}

FILE: src/test/converter2/issues/gh1876.ts
  function foo (line 4) | function foo(options?: number | { min?: number }): number {
  function bar (line 11) | function bar(options: { min: number; max: number } | { min: string }) {

FILE: src/test/converter2/issues/gh1898.ts
  type FunctionType (line 2) | type FunctionType = (foo: string) => string;
  type UnDocFn (line 4) | type UnDocFn = (foo: string) => string;
  class ExampleClass (line 7) | class ExampleClass {
  method [Symbol.iterator] (line 9) | [Symbol.iterator]() {
  method [Symbol.asyncIterator] (line 23) | [Symbol.asyncIterator]() {

FILE: src/test/converter2/issues/gh1927.ts
  class Derived (line 8) | class Derived extends Base {
    method getter (line 12) | public get getter() {

FILE: src/test/converter2/issues/gh1942.ts
  type Foo (line 1) | enum Foo {
  type Bar (line 6) | enum Bar {

FILE: src/test/converter2/issues/gh1961.ts
  class WithDocs1 (line 4) | class WithDocs1 {}

FILE: src/test/converter2/issues/gh1962.ts
  function foo (line 5) | function foo() {}

FILE: src/test/converter2/issues/gh1968.ts
  class Foo (line 1) | class Foo {
    method x (line 3) | get x() {
    method x (line 7) | set x(value: number) {
  class Bar (line 12) | class Bar {

FILE: src/test/converter2/issues/gh1994.ts
  function documented (line 4) | function documented() {}
  function documented2 (line 11) | function documented2(x?: number) {
  function notDocumented (line 15) | function notDocumented() {}
  class Docs (line 18) | class Docs {
    method x (line 20) | get x() {
    method x (line 24) | set x(value: number) {
    method y (line 29) | get y() {
    method y (line 32) | set y(value: number) {
    method z (line 36) | get z() {

FILE: src/test/converter2/issues/gh1996.ts
  function b (line 3) | function b() {}

FILE: src/test/converter2/issues/gh2011.ts
  class Component (line 1) | class Component {}
  type Constructor (line 3) | type Constructor<T = Record<any, any>> = new (...args: any[]) => T;
  function Readable (line 5) | function Readable<TBase extends Constructor<Component>>(Base: TBase) {

FILE: src/test/converter2/issues/gh2012.ts
  function model (line 1) | function model(): number {
  function Model (line 4) | function Model(): string {

FILE: src/test/converter2/issues/gh2019.ts
  class A (line 1) | class A {
    method constructor (line 2) | constructor(

FILE: src/test/converter2/issues/gh2031.ts
  class MyClass (line 1) | class MyClass {
    method aMethod (line 7) | aMethod(aParam: number) {}
    method anotherMethod (line 9) | anotherMethod() {}

FILE: src/test/converter2/issues/gh2033.ts
  type Bar (line 2) | interface Bar {}
  class Foo (line 6) | class Foo {}

FILE: src/test/converter2/issues/gh2042.ts
  function factory (line 1) | function factory() {
  method fn (line 15) | fn(x: unknown) {}

FILE: src/test/converter2/issues/gh2064.ts
  class PrivateCtorDecl (line 1) | class PrivateCtorDecl {
    method constructor (line 2) | constructor(private x = 123) {}

FILE: src/test/converter2/issues/gh2079.ts
  function capitalize (line 1) | function capitalize<T extends string>(string: T) {

FILE: src/test/converter2/issues/gh2087.ts
  type Foo (line 2) | type Foo = () => number;
  class Bar (line 4) | class Bar {

FILE: src/test/converter2/issues/gh2106.ts
  function balance (line 1) | function balance(address: string): Coin {
  type Coin (line 8) | interface Coin {
  type TypeOf (line 17) | type TypeOf = typeof Coin;

FILE: src/test/converter2/issues/gh2135.ts
  class Camera (line 1) | class Camera {

FILE: src/test/converter2/issues/gh2150/index.ts
  type Int (line 3) | type Int = typeof Int;
  type FileInt (line 5) | interface FileInt extends Int {}
  class FileClass (line 7) | class FileClass {}
  type FileClass (line 8) | interface FileClass extends Int {}

FILE: src/test/converter2/issues/gh2150/int.ts
  function intFn (line 2) | function intFn() {}

FILE: src/test/converter2/issues/gh2207/mod.ts
  function foo (line 10) | function foo(): string {

FILE: src/test/converter2/issues/gh2220.ts
  class TypeEmitter (line 1) | class TypeEmitter<T, TOptions extends object = Record<string, never>> {}
  function createAssetEmitter (line 3) | function createAssetEmitter<T, TOptions extends object>(

FILE: src/test/converter2/issues/gh2233.ts
  type Int (line 1) | interface Int {
  class IntImpl (line 8) | class IntImpl implements Int {
    method prop2 (line 10) | prop2() {
    method method2 (line 14) | method2() {

FILE: src/test/converter2/issues/gh2234.ts
  type ReadonlyCharMap (line 1) | interface ReadonlyCharMap extends Iterable<string> {
  class CharMap (line 5) | class CharMap implements ReadonlyCharMap {
    method at (line 6) | at() {
  method [Symbol.iterator] (line 10) | *[Symbol.iterator](): Iterator<string> {}

FILE: src/test/converter2/issues/gh2270.ts
  type Immutable (line 8) | type Immutable = readonly [];

FILE: src/test/converter2/issues/gh2290.ts
  type CallSignature (line 2) | interface CallSignature {
  type CallSignature2 (line 8) | interface CallSignature2 {

FILE: src/test/converter2/issues/gh2291.ts
  function safeParse (line 4) | function safeParse<T>(

FILE: src/test/converter2/issues/gh2296.ts
  type HasNames (line 1) | type HasNames = { names: readonly string[] };
  function getNamesExactly (line 2) | function getNamesExactly<const T extends HasNames>(arg: T): T["names"] {

FILE: src/test/converter2/issues/gh2320.ts
  type BaseUnionMember (line 1) | type BaseUnionMember = {
  type Union (line 5) | type Union =
  class GenericClass (line 13) | class GenericClass<U extends BaseUnionMember> {
    method classFunction (line 18) | public classFunction<MemberType extends U["type"]>(
  class ResolvedSubclass (line 23) | class ResolvedSubclass extends GenericClass<Union> {}

FILE: src/test/converter2/issues/gh2336.ts
  class ClassVersion (line 1) | class ClassVersion {
    method outer (line 6) | outer(): () => void {

FILE: src/test/converter2/issues/gh2360.ts
  class Foo (line 1) | class Foo {

FILE: src/test/converter2/issues/gh2364.ts
  type T (line 9) | type T = string;
  type NS2 (line 12) | type NS2 = { foo: string };
  constant NS2 (line 17) | const NS2 = {

FILE: src/test/converter2/issues/gh2372.ts
  type EventHandler (line 5) | type EventHandler = (e: Event) => void;

FILE: src/test/converter2/issues/gh2389.js
  function foo (line 6) | function foo(x, y) {}

FILE: src/test/converter2/issues/gh2414.ts
  type ObjectWithIndexSignature (line 1) | interface ObjectWithIndexSignature {

FILE: src/test/converter2/issues/gh2436.ts
  function foo (line 2) | function foo() {
  function bugInner (line 6) | function bugInner(): { foo: string } {

FILE: src/test/converter2/issues/gh2437.ts
  type TemplatedTypeBase (line 1) | interface TemplatedTypeBase {
  type One (line 8) | interface One extends TemplatedTypeBase {}
  type Two (line 10) | interface Two extends TemplatedTypeBase {}
  type Type (line 12) | type Type = One | Two;
  function isTemplateInstance (line 14) | function isTemplateInstance(

FILE: src/test/converter2/issues/gh2438.d.ts
  type Bad (line 2) | interface Bad {

FILE: src/test/converter2/issues/gh2444.ts
  function Comparable (line 1) | function Comparable<T>(impl: { compare(a: T, b: T): number }) {
  method compare (line 12) | compare(a, b) {
  method hasInstance (line 20) | hasInstance(value: unknown): value is boolean {
  method compare (line 26) | compare(left, right) {
  method hasInstance (line 34) | hasInstance(value: unknown): value is number {

FILE: src/test/converter2/issues/gh2451.ts
  type Foo (line 1) | type Foo = FooA | FooB;
  type BaseFoo (line 3) | interface BaseFoo<T extends string> {
  type FooA (line 13) | interface FooA extends BaseFoo<"A"> {}
  type FooB (line 15) | interface FooB extends BaseFoo<"B"> {}

FILE: src/test/converter2/issues/gh2466.ts
  type One (line 3) | interface One extends Two {}
  type Two (line 6) | interface Two {
  type Three (line 11) | interface Three {
  type Four (line 15) | interface Four extends Three {}

FILE: src/test/converter2/issues/gh2476.ts
  type Options (line 5) | interface Options {

FILE: src/test/converter2/issues/gh2478.ts
  type Options (line 5) | interface Options {

FILE: src/test/converter2/issues/gh2495.ts
  type IAnimal (line 1) | interface IAnimal {
  type IFish (line 5) | interface IFish extends IAnimal {
  class IFish (line 9) | class IFish implements IFish {}

FILE: src/test/converter2/issues/gh2496.ts
  function f (line 1) | function f() {
  type ReturnOfF (line 6) | type ReturnOfF = ReturnType<typeof f>;

FILE: src/test/converter2/issues/gh2502.ts
  type WeirdOrder (line 4) | type WeirdOrder = [1, 2, 3][number];

FILE: src/test/converter2/issues/gh2507.ts
  type Value (line 1) | interface Value {
  function fromPartial (line 5) | function fromPartial<I extends Exact<Value, I>>(object: I): void {
  type Exact (line 9) | type Exact<P, I extends P> = P extends P ? P & { [K in keyof P]: Exact<P...

FILE: src/test/converter2/issues/gh2508.ts
  type Color (line 1) | enum Color {
  type TypeOf (line 6) | type TypeOf<T> = {
  type Foo (line 10) | type Foo = {
  type Bar (line 15) | type Bar = TypeOf<Foo>;

FILE: src/test/converter2/issues/gh2509.ts
  type Int (line 1) | interface Int {

FILE: src/test/converter2/issues/gh2521.d.ts
  type Foo (line 4) | interface Foo {

FILE: src/test/converter2/issues/gh2524.ts
  type Alias (line 1) | type Alias = {

FILE: src/test/converter2/issues/gh2545.ts
  method notAbstract (line 4) | notAbstract(): void {}
  method notAbstract2 (line 6) | notAbstract2(): void {}
  class Child (line 13) | class Child extends Parent {
    method notAbstract2 (line 14) | override notAbstract2(): void {}
    method isAbstract (line 15) | override isAbstract(): void {}
  class Foo (line 21) | class Foo {
    method isInternal (line 23) | isInternal() {}
  class Bar (line 26) | class Bar extends Foo {
    method isInternal (line 27) | isInternal() {} // also internal

FILE: src/test/converter2/issues/gh2553.ts
  type Constructor (line 7) | type Constructor = new (...args: any[]) => object;
  type TypedConstructor (line 16) | type TypedConstructor<T> = new (...args: any[]) => T;

FILE: src/test/converter2/issues/gh2555.ts
  function ComponentWithOptions (line 8) | function ComponentWithOptions({

FILE: src/test/converter2/issues/gh2574/default.ts
  class DefaultExport (line 4) | class DefaultExport {
    method constructor (line 5) | constructor() {}

FILE: src/test/converter2/issues/gh2574/index.ts
  function usesDefaultExport (line 3) | function usesDefaultExport(param: Default) {}
  function usesNonDefaultExport (line 5) | function usesNonDefaultExport(param: NotDefault) {}

FILE: src/test/converter2/issues/gh2574/notDefault.ts
  class NotDefaultExport (line 1) | class NotDefaultExport {
    method constructor (line 2) | constructor() {}

FILE: src/test/converter2/issues/gh2582.ts
  function getApi (line 1) | function getApi<T>(Ctor: new () => T) {
  function getAPIs (line 10) | function getAPIs<T1, T2>(Ctor1: new () => T1, Ctor2: new () => T2) {

FILE: src/test/converter2/issues/gh2585.ts
  type Foo (line 3) | type Foo =

FILE: src/test/converter2/issues/gh2587.ts
  function foo (line 1) | function foo() {

FILE: src/test/converter2/issues/gh2614.ts
  function foo (line 4) | function foo() {}

FILE: src/test/converter2/issues/gh2634.ts
  function hidden (line 12) | function hidden(a: string | number): void {
  function implicitlyHidden (line 20) | function implicitlyHidden() {}

FILE: src/test/converter2/issues/gh2636.ts
  method constructor (line 2) | protected constructor(a: number) {
  class B (line 10) | class B extends A {
    method constructor (line 12) | public constructor(a: number) {

FILE: src/test/converter2/issues/gh2693.ts
  class Bar (line 8) | class Bar {
    method foo (line 10) | foo() {}

FILE: src/test/converter2/issues/gh2698.ts
  type Square (line 1) | type Square = {
  type TAnimator (line 5) | type TAnimator = {

FILE: src/test/converter2/issues/gh2704.ts
  type Foo (line 1) | type Foo = Bar<123>;
  type Bar (line 4) | type Bar<T> = T extends 123 ? true : false;

FILE: src/test/converter2/issues/gh2718.ts
  function foo (line 6) | function foo(fatal: unknown): string | undefined {
  class Foo (line 10) | class Foo {

FILE: src/test/converter2/issues/gh2719.ts
  type ArrayElement (line 3) | type ArrayElement<ArrayType extends ReadonlyArray<any>> = ArrayType[numb...
  type Timezone (line 5) | type Timezone = ArrayElement<typeof allTimezoneNames>;

FILE: src/test/converter2/issues/gh2755.ts
  type Test (line 1) | in
Condensed preview — 837 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (5,445K chars).
[
  {
    "path": ".config/mocha.fast.json",
    "chars": 368,
    "preview": "{\n    \"$schema\": \"https://json.schemastore.org/mocharc.json\",\n    \"exclude\": [\"src/test/packages/**\", \"src/test/slow/**\""
  },
  {
    "path": ".config/mocha.full.json",
    "chars": 247,
    "preview": "{\n    \"$schema\": \"https://json.schemastore.org/mocharc.json\",\n    \"timeout\": 0,\n    \"spec\": [\"src/test/**/*.test.ts\", \"s"
  },
  {
    "path": ".config/mocha.test-explorer.json",
    "chars": 341,
    "preview": "{\n    \"$schema\": \"https://json.schemastore.org/mocharc.json\",\n    \"extension\": [\"ts\"],\n    \"ignore\": [],\n    \"package\": "
  },
  {
    "path": ".config/regconfig.json",
    "chars": 242,
    "preview": "{\n    \"core\": {\n        \"workingDir\": \"dist/tmp/.reg\",\n        \"actualDir\": \"dist/tmp/__screenshots__\",\n        \"thresho"
  },
  {
    "path": ".config/typedoc.json",
    "chars": 2266,
    "preview": "{\n    \"$schema\": \"https://typedoc.org/schema.json\",\n    \"intentionallyNotExported\": [\n        \"SORT_STRATEGIES\",\n       "
  },
  {
    "path": ".editorconfig",
    "chars": 271,
    "preview": "# https://editorconfig.org\n\nroot = true\n\n[*]\ncharset = utf-8\nindent_style = space\nindent_size = 4\nend_of_line = lf\ninser"
  },
  {
    "path": ".gitattributes",
    "chars": 201,
    "preview": "# Disable core.autocrlf's line ending conversion behavior to prevent test failures on Windows\n* text=auto eol=lf\nsrc/tes"
  },
  {
    "path": ".github/CODE_OF_CONDUCT.md",
    "chars": 5478,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
  },
  {
    "path": ".github/CONTRIBUTING.md",
    "chars": 8136,
    "preview": "# Contributing to TypeDoc\n\nThanks for taking the time to contribute! TypeDoc is a volunteer-run project and we couldn't "
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 16,
    "preview": "github: gerrit0\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 1092,
    "preview": "---\nname: Bug Report\nabout: Report a bug in TypeDoc\ntype: Bug\n---\n\n## Search terms\n\n<!-- Include keywords that might hel"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 140,
    "preview": "contact_links:\n    - name: Discussions\n      url: https://github.com/TypeStrong/typedoc/discussions\n      about: Please "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 390,
    "preview": "---\nname: Feature Request\nabout: Suggest improvements or new features\ntype: Feature\n---\n\n## Search Terms\n\n<!-- Include k"
  },
  {
    "path": ".github/SECURITY.md",
    "chars": 819,
    "preview": "# Security Policy\n\n## Supported Versions\n\nThe TypeDoc team supports the latest minor version. For one minor version prio"
  },
  {
    "path": ".github/workflows/build-site.yml",
    "chars": 1339,
    "preview": "name: Build Site\non:\n    push:\n    pull_request:\n    schedule:\n        - cron: \"0 5 * * *\"\njobs:\n    build:\n        runs"
  },
  {
    "path": ".github/workflows/ci.yml",
    "chars": 2547,
    "preview": "name: CI\non: [push, pull_request]\njobs:\n    build:\n        runs-on: ubuntu-latest\n        strategy:\n            matrix:\n"
  },
  {
    "path": ".github/workflows/publish-beta.yml",
    "chars": 1539,
    "preview": "name: Publish Beta\non:\n    push:\n        branches:\n            - beta\njobs:\n    npm-publish:\n        name: npm-publish\n "
  },
  {
    "path": ".github/workflows/publish-lts.yml",
    "chars": 1292,
    "preview": "name: Publish LTS\non:\n    push:\n        branches:\n            - lts\njobs:\n    npm-publish:\n        name: npm-publish\n   "
  },
  {
    "path": ".github/workflows/publish.yml",
    "chars": 1726,
    "preview": "name: Publish\non:\n    push:\n        branches:\n            - master\n\npermissions:\n    id-token: write # Required for OIDC"
  },
  {
    "path": ".gitignore",
    "chars": 487,
    "preview": ".DS_Store\n.idea\n.vs\n.tscache\n.baseDir.js\n.baseDir.ts\n*.swp\nyarn.lock\n.nyc_output\nyarn-error.log\ntypedoc-config.schema.js"
  },
  {
    "path": ".npmrc",
    "chars": 401,
    "preview": "# If these were only for production, we'd care, but there's no\n# way to ask pnpm to only report production audit finding"
  },
  {
    "path": ".vscode/extensions.json",
    "chars": 140,
    "preview": "{\n    \"recommendations\": [\n        \"hbenl.vscode-test-explorer\",\n        \"hbenl.vscode-mocha-test-adapter\",\n        \"dpr"
  },
  {
    "path": ".vscode/launch.json",
    "chars": 1062,
    "preview": "{\n    // Use IntelliSense to learn about possible Node.js debug attributes.\n    // Hover to view descriptions of existin"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 2188,
    "preview": "{\n    \"files.associations\": {\n        \"tsdoc.json\": \"jsonc\", // TSDoc allows comments.\n        \"typedoc.json\": \"jsonc\" /"
  },
  {
    "path": ".vscode/tasks.json",
    "chars": 2432,
    "preview": "{\n    // See https://go.microsoft.com/fwlink/?LinkId=733558\n    // for the documentation about the tasks.json format\n   "
  },
  {
    "path": "CHANGELOG.md",
    "chars": 125273,
    "preview": "---\ntitle: Changelog\n---\n\n## Unreleased\n\n## v0.28.17 (2026-02-13)\n\n### Bug Fixes\n\n- Improved handling of comments for ty"
  },
  {
    "path": "LICENSE",
    "chars": 11323,
    "preview": "Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licens"
  },
  {
    "path": "README.md",
    "chars": 3191,
    "preview": "# TypeDoc\n\nDocumentation generator for TypeScript projects.\n\n## Documentation\n\nFor more detailed documentation, the chan"
  },
  {
    "path": "bin/package.json",
    "chars": 27,
    "preview": "{\n    \"type\": \"commonjs\"\n}\n"
  },
  {
    "path": "bin/typedoc",
    "chars": 721,
    "preview": "#!/usr/bin/env node\n//@ts-check\n\nconst { fork } = require(\"child_process\");\n\nfunction main() {\n    fork(__dirname + \"/.."
  },
  {
    "path": "dprint.json",
    "chars": 947,
    "preview": "{\n    \"indentWidth\": 4,\n    \"typescript\": {\n        \"module.sortImportDeclarations\": \"maintain\",\n        \"operatorPositi"
  },
  {
    "path": "eslint.config.mjs",
    "chars": 9024,
    "preview": "// @ts-check\nimport eslint from \"@eslint/js\";\nimport tslint from \"typescript-eslint\";\n\n/** @type {import(\"typescript-esl"
  },
  {
    "path": "example/.eslintrc.json",
    "chars": 134,
    "preview": "{\n    \"extends\": \"../.eslintrc\",\n    \"parserOptions\": {\n        \"project\": \"./tsconfig.json\"\n    },\n    \"ignorePatterns\""
  },
  {
    "path": "example/README.md",
    "chars": 2594,
    "preview": "# The TypeDoc Example\n\nWelcome to the TypeDoc example! TypeDoc is a documentation generator for\nTypeScript.\n\nTypeDoc aut"
  },
  {
    "path": "example/building-the-example.md",
    "chars": 251,
    "preview": "# Building the TypeDoc Example\n\n1. Build TypeDoc: `pnpm install` and `pnpm build` in the root directory.\n2. `cd example`"
  },
  {
    "path": "example/package.json",
    "chars": 633,
    "preview": "{\n    \"name\": \"typedoc-example\",\n    \"version\": \"0.0.0\",\n    \"private\": true,\n    \"description\": \"An example of using th"
  },
  {
    "path": "example/src/classes/CancellablePromise.ts",
    "chars": 13076,
    "preview": "const noop = () => {\n    /* purposefully empty */\n};\n\n/**\n * If canceled, a {@link CancellablePromise | `CancellableProm"
  },
  {
    "path": "example/src/classes/Customer.ts",
    "chars": 4249,
    "preview": "/**\n * An abstract base class for the customer entity in our application.\n *\n * Notice how TypeDoc shows the inheritance"
  },
  {
    "path": "example/src/classes/StringArray.ts",
    "chars": 531,
    "preview": "/**\n * An array of strings that's defined as\n *\n * ```\n * export class StringArray extends Array<string> {\n *     // ..."
  },
  {
    "path": "example/src/classes/index.ts",
    "chars": 97,
    "preview": "export * from \"./CancellablePromise\";\nexport * from \"./Customer\";\nexport * from \"./StringArray\";\n"
  },
  {
    "path": "example/src/documents/external-markdown.md",
    "chars": 3443,
    "preview": "---\ntitle: External Markdown\ncategory: Documents\n---\n\n# External Markdown\n\nIt can be convenient to write long-form guide"
  },
  {
    "path": "example/src/documents/include-code.md",
    "chars": 440,
    "preview": "## The `@includeCode` Tag\n\nFor convenience, an `@includeCode` inline tag is also recognized, which will include the refe"
  },
  {
    "path": "example/src/documents/include.md",
    "chars": 512,
    "preview": "---\ntitle: Include and Include Code\ncategory: Documents\n---\n\n# Including other files\n\nIt can be convenient to write long"
  },
  {
    "path": "example/src/documents/markdown.md",
    "chars": 2312,
    "preview": "---\ntitle: Markdown Showcase\ncategory: Documents\n---\n\n# Markdown Showcase\n\nAll comments are parsed as **Markdown**. Type"
  },
  {
    "path": "example/src/documents/syntax-highlighting.md",
    "chars": 1415,
    "preview": "---\ntitle: Syntax Highlighting\ncategory: Documents\n---\n\nTypeDoc supports code blocks in Markdown and uses\n[Shiki](https:"
  },
  {
    "path": "example/src/enums.ts",
    "chars": 2000,
    "preview": "/** Describes the status of a delivery order. */\n\n// #region simpleEnumRegion\n// #region simpleEnum\nexport enum SimpleEn"
  },
  {
    "path": "example/src/functions.ts",
    "chars": 3394,
    "preview": "/**\n * Calculates the square root of a number.\n *\n * @param x the number to calculate the root of.\n * @returns the squar"
  },
  {
    "path": "example/src/index.ts",
    "chars": 580,
    "preview": "/**\n * @packageDocumentation\n * @categoryDescription Component\n * React Components -- This description is added with the"
  },
  {
    "path": "example/src/internals.ts",
    "chars": 439,
    "preview": "/**\n * @internal\n *\n * Use `@internal` to indicate that something is for internal use. If the\n * `--excludeInternal` opt"
  },
  {
    "path": "example/src/reactComponents.tsx",
    "chars": 7297,
    "preview": "import { PropsWithChildren, ReactElement } from \"react\";\n\n/**\n * The props type for {@link CardA}.\n */\nexport interface "
  },
  {
    "path": "example/src/reexports.ts",
    "chars": 111,
    "preview": "/**\n * Here is a useful function re-exported from Lodash.\n */\nexport { sortBy as lodashSortBy } from \"lodash\";\n"
  },
  {
    "path": "example/src/types.ts",
    "chars": 1084,
    "preview": "/** A simple type alias defined using the `type` keyword. */\nexport type SimpleTypeAlias = string | number | boolean;\n\n/"
  },
  {
    "path": "example/src/variables.ts",
    "chars": 581,
    "preview": "/** A simple numeric constant. */\nexport const PI = 3.14159265359;\n\n/** A simple string constant. */\nexport const STRING"
  },
  {
    "path": "example/tsconfig.json",
    "chars": 1383,
    "preview": "{\n    \"compilerOptions\": {\n        \"target\": \"ESNext\", /* Set the JavaScript language version for emitted JavaScript and"
  },
  {
    "path": "example/typedoc.json",
    "chars": 833,
    "preview": "{\n    \"$schema\": \"https://typedoc.org/schema.json\",\n    \"name\": \"TypeDoc Example\",\n    \"entryPoints\": [\"./src\"],\n    \"so"
  },
  {
    "path": "package.json",
    "chars": 4899,
    "preview": "{\n    \"name\": \"typedoc\",\n    \"description\": \"Create api documentation for TypeScript projects.\",\n    \"version\": \"0.28.17"
  },
  {
    "path": "scripts/build_browser_translations.js",
    "chars": 3802,
    "preview": "// @ts-check\n\nimport ts from \"typescript\";\nimport { join } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\ni"
  },
  {
    "path": "scripts/build_site.sh",
    "chars": 1293,
    "preview": "#!/bin/bash\n# Expects to be executed in the typedoc repo root folder\nset -e\n\nnode bin/typedoc --help --logLevel Error > "
  },
  {
    "path": "scripts/build_themes.js",
    "chars": 1232,
    "preview": "// @ts-check\nimport esbuild from \"esbuild\";\nimport fs from \"node:fs\";\n\nconst watch = process.argv.slice(2).some((t) => t"
  },
  {
    "path": "scripts/capture_screenshots.mjs",
    "chars": 5382,
    "preview": "// @ts-check\nimport * as fs from \"fs\";\nimport { platform } from \"os\";\nimport { dirname, join, relative, resolve } from \""
  },
  {
    "path": "scripts/clone_api_users.js",
    "chars": 4667,
    "preview": "#!/usr/bin/env node\n// @ts-check\n// Purpose: Download repos known to use TypeDoc's APIs for custom plugins/themes\n// whi"
  },
  {
    "path": "scripts/create_release.js",
    "chars": 4311,
    "preview": "// @ts-check\n\nimport cp from \"child_process\";\nimport { join } from \"path\";\nimport https from \"https\";\nimport { readFile,"
  },
  {
    "path": "scripts/data/api_users.js",
    "chars": 2098,
    "preview": "// @ts-check\n\n// A list of projects on GitHub which are not published TypeDoc plugins which are\n// known to use TypeDoc'"
  },
  {
    "path": "scripts/download_plugins.cjs",
    "chars": 3215,
    "preview": "#!/usr/bin/env node\n// @ts-check\n// Helper script to download recently updated plugins\n// Used to review code changes fo"
  },
  {
    "path": "scripts/generate_options_schema.js",
    "chars": 5769,
    "preview": "// @ts-check\n\nimport { writeFileSync } from \"fs\";\nimport { ParameterType } from \"../dist/index.js\";\nimport { addTypeDocO"
  },
  {
    "path": "scripts/generate_site_plugins.js",
    "chars": 10780,
    "preview": "// @ts-check\nimport * as cp from \"child_process\";\nimport { mkdirSync, promises as fs } from \"fs\";\nimport semver from \"se"
  },
  {
    "path": "scripts/prepare.mjs",
    "chars": 1254,
    "preview": "// @ts-check\n// See https://github.com/cspotcode/workaround-broken-npm-prepack-behavior\n\nimport { spawnSync } from \"chil"
  },
  {
    "path": "scripts/rebuild_specs.js",
    "chars": 4077,
    "preview": "#!/usr/bin/env node\n// @ts-check\n\"use strict\";\n\nError.stackTraceLimit = 50;\nimport ts from \"typescript\";\nimport fs from "
  },
  {
    "path": "scripts/set_strict.js",
    "chars": 739,
    "preview": "// @ts-check\n// Sets the Strict type that TypeDoc uses to enable overloads for consumers only.\n// See the rationale in s"
  },
  {
    "path": "scripts/sync_i18n.js",
    "chars": 6815,
    "preview": "import { execSync } from \"child_process\";\nimport { readdirSync, readFileSync, writeFileSync } from \"fs\";\nimport ts from "
  },
  {
    "path": "scripts/testcase.js",
    "chars": 2079,
    "preview": "#!/usr/bin/env node\n// @ts-check\nimport md from \"markdown-it\";\nimport cp from \"child_process\";\nimport { writeFile } from"
  },
  {
    "path": "scripts/visual_regression.js",
    "chars": 4968,
    "preview": "#!/usr/bin/env node\n// @ts-check\nimport util from \"util\";\nimport { cpSync, existsSync, mkdirSync, rmSync } from \"fs\";\nim"
  },
  {
    "path": "site/custom.css",
    "chars": 247,
    "preview": "/* Custom styling for the themes and plugins pages */\n.box {\n    padding: 0.5em;\n    padding-left: 1em;\n    margin-botto"
  },
  {
    "path": "site/declaration-references.md",
    "chars": 12071,
    "preview": "---\ntitle: Declaration References\n---\n\n# Declaration References\n\n> [!note] If [--useTsLinkResolution](options/comments.m"
  },
  {
    "path": "site/development/index.md",
    "chars": 7383,
    "preview": "---\ntitle: Development\nchildren:\n    - plugins.md\n    - themes.md\n    - internationalization.md\n    - third-party-symbol"
  },
  {
    "path": "site/development/internationalization.md",
    "chars": 3768,
    "preview": "---\ntitle: \"Internationalization\"\ngroup: Guides\n---\n\n# Internationalization\n\nTypeDoc 0.26 added support for internationa"
  },
  {
    "path": "site/development/local-storage.md",
    "chars": 708,
    "preview": "---\ntitle: Disabling Local Storage\n---\n\n# Disabling Local Storage\n\nTypeDoc uses local storage by default to retain opera"
  },
  {
    "path": "site/development/plugins.md",
    "chars": 2933,
    "preview": "---\ntitle: Plugins\nsummary: Overview of how to write a TypeDoc plugin\n---\n\n# Writing a TypeDoc Plugin\n\nTypeDoc supports "
  },
  {
    "path": "site/development/themes.md",
    "chars": 4446,
    "preview": "---\ntitle: Custom Themes\n---\n\n# Custom Themes\n\nThemes are defined by plugins calling the `defineTheme` method on\n`Applic"
  },
  {
    "path": "site/development/third-party-symbols.md",
    "chars": 6654,
    "preview": "---\ntitle: Third Party Symbols\n---\n\n# Third Party Symbols\n\nTypeDoc 0.22 added support for linking to third party sites b"
  },
  {
    "path": "site/doc-comments/index.md",
    "chars": 3741,
    "preview": "---\ntitle: Doc Comments\nchildren:\n    - jsdoc-support.md\n    - tsdoc-support.md\n---\n\n# Doc Comments\n\nTypeDoc implements "
  },
  {
    "path": "site/doc-comments/jsdoc-support.md",
    "chars": 879,
    "preview": "---\ntitle: JSDoc Support\n---\n\n# JSDoc Support\n\nJSDoc is the de-facto \"standard\" for comments, but does not specify a rig"
  },
  {
    "path": "site/doc-comments/tsdoc-support.md",
    "chars": 2216,
    "preview": "---\ntitle: TSDoc Support\n---\n\n# TSDoc Support\n\nThe TSDoc standard is a proposal to standardize parsing of JSDoc-like com"
  },
  {
    "path": "site/external-documents.md",
    "chars": 3121,
    "preview": "---\ntitle: External Documents\n---\n\nIt can be convenient to write long-form guides/tutorials outside of doc comments.\nTo "
  },
  {
    "path": "site/generated/.gitignore",
    "chars": 14,
    "preview": "*\n!.gitignore\n"
  },
  {
    "path": "site/googlede482cdb17c37ad4.html",
    "chars": 53,
    "preview": "google-site-verification: googlede482cdb17c37ad4.html"
  },
  {
    "path": "site/index.md",
    "chars": 963,
    "preview": "TypeDoc converts comments in TypeScript's source code into HTML documentation\nor a JSON model.\n\n## Quick Start\n\nTypeDoc "
  },
  {
    "path": "site/options/comments.md",
    "chars": 8543,
    "preview": "---\ntitle: Comments\n---\n\nThese options control how TypeDoc parses comments.\n\n## commentStyle\n\n```bash\n$ typedoc --commen"
  },
  {
    "path": "site/options/configuration.md",
    "chars": 3408,
    "preview": "---\ntitle: Configuration\n---\n\nThese options control where TypeDoc reads its configuration from. TypeDoc will read option"
  },
  {
    "path": "site/options/input.md",
    "chars": 11041,
    "preview": "---\ntitle: Input\n---\n\nThese options control what files TypeDoc processes to generate documentation\nand how the files are"
  },
  {
    "path": "site/options/organization.md",
    "chars": 4594,
    "preview": "---\ntitle: Organization\n---\n\nThese options control how content is structured on generated pages.\n\n## groupReferencesByTy"
  },
  {
    "path": "site/options/other.md",
    "chars": 1853,
    "preview": "---\ntitle: Other\n---\n\nOptions which don't fit elsewhere.\n\n## watch\n\n```bash\n$ typedoc --watch\n```\n\nUse TypeScript's incr"
  },
  {
    "path": "site/options/output.md",
    "chars": 16730,
    "preview": "---\ntitle: Output\n---\n\nThese options control TypeDoc's output.\n\n## outputs\n\n```json\n// typedoc.json\n{\n    \"outputs\": [\n "
  },
  {
    "path": "site/options/package-options.md",
    "chars": 22938,
    "preview": "---\ntitle: Package Options\n---\n\n# Package Options\n\n> [!note]\n> This page only applies when running with `entryPointStrat"
  },
  {
    "path": "site/options/validation.md",
    "chars": 5054,
    "preview": "---\ntitle: Validation\n---\n\nOptions that control how TypeDoc validates your documentation.\n\n## validation\n\nCLI:\n\n```bash\n"
  },
  {
    "path": "site/options.md",
    "chars": 1236,
    "preview": "---\ntitle: Options\nchildren:\n    - options/configuration.md\n    - options/input.md\n    - options/output.md\n    - options"
  },
  {
    "path": "site/overview.md",
    "chars": 4144,
    "preview": "---\ntitle: Overview\n---\n\n## Requirements\n\nTypeDoc requires [Node.js](https://nodejs.org/) to run. It supports the curren"
  },
  {
    "path": "site/plugins.md",
    "chars": 421,
    "preview": "---\ntitle: Plugins\n---\n\nTypeDoc will load plugins specified with the `--plugin` flag. There are a number of community de"
  },
  {
    "path": "site/site-plugin.js",
    "chars": 2834,
    "preview": "// @ts-check\nimport { readFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport { Application, Co"
  },
  {
    "path": "site/tags/abstract.md",
    "chars": 753,
    "preview": "---\ntitle: \"@abstract\"\n---\n\n# @abstract\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags)\n\nThis tag can be used to tel"
  },
  {
    "path": "site/tags/alpha.md",
    "chars": 648,
    "preview": "---\ntitle: \"@alpha\"\n---\n\n# @alpha\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags) <br>\n**TSDoc Reference:** [@alpha]"
  },
  {
    "path": "site/tags/author.md",
    "chars": 362,
    "preview": "---\ntitle: \"@author\"\n---\n\n# @author\n\n**Tag Kind:** [Block](../tags.md#block-tags)\n\nThe `@author` tag can be used to docu"
  },
  {
    "path": "site/tags/beta.md",
    "chars": 835,
    "preview": "---\ntitle: \"@beta\"\n---\n\n# @beta\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags) <br>\n**TSDoc Reference:** [@beta](ht"
  },
  {
    "path": "site/tags/category.md",
    "chars": 1820,
    "preview": "---\ntitle: \"@category\"\n---\n\n# @category\n\n**Tag Kind:** [Block](../tags.md#block-tags)\n\nThe `@category` tag can be used t"
  },
  {
    "path": "site/tags/class.md",
    "chars": 797,
    "preview": "---\ntitle: \"@class\"\n---\n\n# @class\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags)\n\nIf present on a variable, will ca"
  },
  {
    "path": "site/tags/defaultValue.md",
    "chars": 696,
    "preview": "---\ntitle: \"@defaultValue\"\n---\n\n# @defaultValue\n\n**Tag Kind:** [Block](../tags.md#block-tags) <br>\n**TSDoc Reference:** "
  },
  {
    "path": "site/tags/deprecated.md",
    "chars": 756,
    "preview": "---\ntitle: \"@deprecated\"\n---\n\n# @deprecated\n\n**Tag Kind:** [Block](../tags.md#block-tags) <br>\n**TSDoc Reference:** [@de"
  },
  {
    "path": "site/tags/document.md",
    "chars": 463,
    "preview": "---\ntitle: \"@document\"\n---\n\n# @document\n\n**Tag Kind:** [Block](../tags.md#block-tags)\n\nInstructs TypeDoc to include the "
  },
  {
    "path": "site/tags/enum.md",
    "chars": 619,
    "preview": "---\ntitle: \"@enum\"\n---\n\n# @enum\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags)\n\nIf present on an object with string"
  },
  {
    "path": "site/tags/event.md",
    "chars": 454,
    "preview": "---\ntitle: \"@event\"\n---\n\n# @event\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags)\n\nThe `@event` tag is used to mark "
  },
  {
    "path": "site/tags/eventProperty.md",
    "chars": 558,
    "preview": "---\ntitle: \"@eventProperty\"\n---\n\n# @eventProperty\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags) <br>\n**TSDoc Refer"
  },
  {
    "path": "site/tags/example.md",
    "chars": 749,
    "preview": "---\ntitle: \"@example\"\n---\n\n# @example\n\n**Tag Kind:** [Block](../tags.md#block-tags) <br>\n**TSDoc Reference:** [@example]"
  },
  {
    "path": "site/tags/expand.md",
    "chars": 2967,
    "preview": "---\ntitle: \"@expand\"\n---\n\n# Expand Tags\n\nThe `@expand`, `@expandType`, and `@preventExpand` tags can be used to control\n"
  },
  {
    "path": "site/tags/experimental.md",
    "chars": 859,
    "preview": "---\ntitle: \"@experimental\"\n---\n\n# @experimental\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags) <br>\n**TSDoc Referen"
  },
  {
    "path": "site/tags/function.md",
    "chars": 1340,
    "preview": "---\ntitle: \"@function\"\n---\n\n# @function\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags)\n\nIf a variable declaration i"
  },
  {
    "path": "site/tags/group.md",
    "chars": 2819,
    "preview": "---\ntitle: \"@group\"\n---\n\n# Group Tags\n\nThe `@group`, `@groupDescription`, `@showGroups`, `@hideGroups`, and\n`@disableGro"
  },
  {
    "path": "site/tags/hidden.md",
    "chars": 432,
    "preview": "---\ntitle: \"@hidden\"\n---\n\n# @hidden\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags)\n\nReflections marked with the `@h"
  },
  {
    "path": "site/tags/hideconstructor.md",
    "chars": 689,
    "preview": "---\ntitle: \"@hideconstructor\"\n---\n\n# @hideconstructor\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags)\n\nThis tag shou"
  },
  {
    "path": "site/tags/ignore.md",
    "chars": 453,
    "preview": "---\ntitle: \"@ignore\"\n---\n\n# @ignore\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags)\n\nReflections marked with the `@i"
  },
  {
    "path": "site/tags/import.md",
    "chars": 722,
    "preview": "---\ntitle: \"@import\"\n---\n\n# @import\n\n**Tag Kind:** [Block](../tags.md#block-tags)\n\nThe `@import` tag is recognized for u"
  },
  {
    "path": "site/tags/include.md",
    "chars": 4989,
    "preview": "---\ntitle: \"\\{\\@include\\}\"\n---\n\n# \\{\\@include\\}\n\n**Tag Kind:** [Inline](../tags.md#inline-tags)\n\nThe `@include` tag can "
  },
  {
    "path": "site/tags/inheritDoc.md",
    "chars": 1233,
    "preview": "---\ntitle: \"\\{\\@inheritDoc\\}\"\n---\n\n**Tag Kind:** [Inline](../tags.md#inline-tags) / [Block](../tags.md#block-tags) <br>\n"
  },
  {
    "path": "site/tags/inline.md",
    "chars": 2673,
    "preview": "---\ntitle: \"@inline\"\n---\n\n# Inline Tags\n\nThe `@inline`, `@inlineType` and `@preventInline` tags can be used to control h"
  },
  {
    "path": "site/tags/interface.md",
    "chars": 799,
    "preview": "---\ntitle: \"@interface\"\n---\n\n# @interface\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags)\n\nIf present on a type alia"
  },
  {
    "path": "site/tags/internal.md",
    "chars": 784,
    "preview": "---\ntitle: \"@internal\"\n---\n\n# @internal\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags) <br>\n**TSDoc Reference:** [@"
  },
  {
    "path": "site/tags/label.md",
    "chars": 1369,
    "preview": "---\ntitle: \"\\{\\@label\\}\"\n---\n\n# {@label}\n\n**Tag Kind:** [Inline](../tags.md#inline-tags) <br>\n**TSDoc Reference:** [@lab"
  },
  {
    "path": "site/tags/license.md",
    "chars": 377,
    "preview": "---\ntitle: \"@license\"\n---\n\n# @license\n\n**Tag Kind:** [Block](../tags.md#block-tags)\n\nThe `@license` tag is recognized to"
  },
  {
    "path": "site/tags/link.md",
    "chars": 2335,
    "preview": "---\ntitle: \"\\{\\@link\\}\"\n---\n\n# \\{\\@link\\}\n\n**Tag Kind:** [Inline](../tags.md#inline-tags) <br>\n**TSDoc Reference:** [@li"
  },
  {
    "path": "site/tags/mergeModuleWith.md",
    "chars": 1512,
    "preview": "---\ntitle: \"@mergeModuleWith\"\n---\n\n# @mergeModuleWith\n\n**Tag Kind:** [Block](../tags.md#block-tags)\n\nThe `@mergeModuleWi"
  },
  {
    "path": "site/tags/module.md",
    "chars": 1309,
    "preview": "---\ntitle: \"@module\"\n---\n\n# @module\n\n**Tag Kind:** [Block](../tags.md#block-tags)\n\nThe `@module` tag is used to mark a c"
  },
  {
    "path": "site/tags/namespace.md",
    "chars": 663,
    "preview": "---\ntitle: \"@namespace\"\n---\n\n# @namespace\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags)\n\nThe `@namespace` tag can "
  },
  {
    "path": "site/tags/overload.md",
    "chars": 926,
    "preview": "---\ntitle: \"@overload\"\n---\n\n# @overload\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags)\n\nThe `@overload` tag is reco"
  },
  {
    "path": "site/tags/override.md",
    "chars": 537,
    "preview": "---\ntitle: \"@override\"\n---\n\n# @override\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags) <br>\n**TSDoc Reference:** [@"
  },
  {
    "path": "site/tags/packageDocumentation.md",
    "chars": 1113,
    "preview": "---\ntitle: \"@packageDocumentation\"\n---\n\n# @packageDocumentation\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags) <br>"
  },
  {
    "path": "site/tags/param.md",
    "chars": 2592,
    "preview": "---\ntitle: \"@param\"\n---\n\n# @param and @this\n\n**Tag Kind:** [Block](../tags.md#block-tags) <br>\n**TSDoc Reference:** [@pa"
  },
  {
    "path": "site/tags/primaryExport.md",
    "chars": 811,
    "preview": "---\ntitle: \"@primaryExport\"\n---\n\n# @primaryExport\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags)\n\nNormally, when Ty"
  },
  {
    "path": "site/tags/private.md",
    "chars": 607,
    "preview": "---\ntitle: \"@private\"\n---\n\n# @private\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags)\n\nThis tag should generally not"
  },
  {
    "path": "site/tags/privateRemarks.md",
    "chars": 772,
    "preview": "---\ntitle: \"@privateRemarks\"\n---\n\n# @privateRemarks\n\n**Tag Kind:** [Block](../tags.md#block-tags) <br>\n**TSDoc Reference"
  },
  {
    "path": "site/tags/property.md",
    "chars": 862,
    "preview": "---\ntitle: \"@property\"\n---\n\n# @property\n\n**Tag Kind:** [Block](../tags.md#block-tags)\n\nThe `@property` (or `@prop`) tag "
  },
  {
    "path": "site/tags/protected.md",
    "chars": 619,
    "preview": "---\ntitle: \"@protected\"\n---\n\n# @protected\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags)\n\nThis tag should generally"
  },
  {
    "path": "site/tags/public.md",
    "chars": 1382,
    "preview": "---\ntitle: \"@public\"\n---\n\n# @public\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags) <br>\n**TSDoc Reference:** [@publ"
  },
  {
    "path": "site/tags/readonly.md",
    "chars": 559,
    "preview": "---\ntitle: \"@readonly\"\n---\n\n# @readonly\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags) <br>\n**TSDoc Reference:** [@"
  },
  {
    "path": "site/tags/remarks.md",
    "chars": 942,
    "preview": "---\ntitle: \"@remarks\"\n---\n\n# @remarks\n\n**Tag Kind:** [Block](../tags.md#block-tags) <br>\n**TSDoc Reference:** [@remarks]"
  },
  {
    "path": "site/tags/returns.md",
    "chars": 582,
    "preview": "---\ntitle: \"@returns\"\n---\n\n# @returns\n\n**Tag Kind:** [Block](../tags.md#block-tags) <br>\n**TSDoc Reference:** [@returns]"
  },
  {
    "path": "site/tags/sealed.md",
    "chars": 529,
    "preview": "---\ntitle: \"@sealed\"\n---\n\n# @sealed\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags) <br>\n**TSDoc Reference:** [@seal"
  },
  {
    "path": "site/tags/see.md",
    "chars": 721,
    "preview": "---\ntitle: \"@see\"\n---\n\n# @see\n\n**Tag Kind:** [Block](../tags.md#block-tags) <br>\n**TSDoc Reference:** [@see](https://tsd"
  },
  {
    "path": "site/tags/since.md",
    "chars": 382,
    "preview": "---\ntitle: \"@since\"\n---\n\n# @since\n\n**Tag Kind:** [Block](../tags.md#block-tags)\n\nThe `@since` tag can be used to documen"
  },
  {
    "path": "site/tags/sortStrategy.md",
    "chars": 864,
    "preview": "---\ntitle: \"@sortStrategy\"\n---\n\n# @sortStrategy\n\n**Tag Kind:** [Block](../tags.md#block-tags) <br>\n\nThis tag can be used"
  },
  {
    "path": "site/tags/summary.md",
    "chars": 1236,
    "preview": "---\ntitle: \"@summary\"\n---\n\n# @summary\n\n**Tag Kind:** [Block](../tags.md#block-tags) <br>\n**JSDoc Reference:** [@summary]"
  },
  {
    "path": "site/tags/template.md",
    "chars": 620,
    "preview": "---\ntitle: \"@template\"\n---\n\n# @template\n\n**Tag Kind:** [Block](../tags.md#block-tags)\n\nThe `@template` tag is used to do"
  },
  {
    "path": "site/tags/throws.md",
    "chars": 387,
    "preview": "---\ntitle: \"@throws\"\n---\n\n# @throws\n\n**Tag Kind:** [Block](../tags.md#block-tags) <br>\n**TSDoc Reference:** [@throws](ht"
  },
  {
    "path": "site/tags/typeParam.md",
    "chars": 1101,
    "preview": "---\ntitle: \"@typeParam\"\n---\n\n# @typeParam\n\n**Tag Kind:** [Block](../tags.md#block-tags) <br>\n**TSDoc Reference:** [@type"
  },
  {
    "path": "site/tags/typescript.md",
    "chars": 657,
    "preview": "---\ntitle: \"TypeScript Tags\"\n---\n\n# TypeScript Tags\n\n**Tag Kind:** [Block](../tags.md#block-tags)\n\nThe following tags ar"
  },
  {
    "path": "site/tags/useDeclaredType.md",
    "chars": 1134,
    "preview": "---\ntitle: \"@useDeclaredType\"\n---\n\n# @useDeclaredType\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags) <br>\n\nThis tag"
  },
  {
    "path": "site/tags/virtual.md",
    "chars": 551,
    "preview": "---\ntitle: \"@virtual\"\n---\n\n# @virtual\n\n**Tag Kind:** [Modifier](../tags.md#modifier-tags) <br>\n**TSDoc Reference:** [@vi"
  },
  {
    "path": "site/tags.md",
    "chars": 8451,
    "preview": "---\ntitle: Tags\nchildren:\n    - tags/abstract.md\n    - tags/alpha.md\n    - tags/author.md\n    - tags/beta.md\n    - tags/"
  },
  {
    "path": "site/themes.md",
    "chars": 627,
    "preview": "---\ntitle: Themes\n---\n\nThemes allow you to change the look and feel of the generated documentation.\nThe `--theme` option"
  },
  {
    "path": "site/typedoc-plugin-redirect.js",
    "chars": 3108,
    "preview": "// Taken from typedoc-plugin-redirect v1.1.0\n// Can't install the plugin here as this repo isn't actually a monorepo yet"
  },
  {
    "path": "site/typedoc.config.jsonc",
    "chars": 5520,
    "preview": "{\n    \"$schema\": \"https://typedoc.org/schema.json\",\n    \"logLevel\": \"Verbose\",\n    \"treatWarningsAsErrors\": true,\n\n    \""
  },
  {
    "path": "src/browser-utils.ts",
    "chars": 595,
    "preview": "export * from \"#models\";\n\nexport {\n    addTranslations,\n    type ComponentPath,\n    ConsoleLogger,\n    type DeclarationR"
  },
  {
    "path": "src/index.ts",
    "chars": 4287,
    "preview": "/**\n * @module TypeDoc API\n *\n * In addition to the members documented here, TypeDoc exports a `typedoc/debug`\n * entry "
  },
  {
    "path": "src/lib/application-events.ts",
    "chars": 152,
    "preview": "export const ApplicationEvents = {\n    BOOTSTRAP_END: \"bootstrapEnd\",\n    REVIVE: \"reviveProject\",\n    VALIDATE_PROJECT:"
  },
  {
    "path": "src/lib/application.ts",
    "chars": 32356,
    "preview": "import * as Path from \"path\";\nimport ts from \"typescript\";\n\nimport { Deserializer, type JSONOutput, Serializer } from \"."
  },
  {
    "path": "src/lib/cli.ts",
    "chars": 4050,
    "preview": "/* eslint-disable no-console */\n\nconst ExitCodes = {\n    Ok: 0,\n    OptionError: 1,\n    CompileError: 3,\n    ValidationE"
  },
  {
    "path": "src/lib/converter/comments/blockLexer.ts",
    "chars": 15809,
    "preview": "import ts from \"typescript\";\nimport { type Token, TokenSyntaxKind } from \"./lexer.js\";\nimport { resolveAliasedSymbol } f"
  },
  {
    "path": "src/lib/converter/comments/declarationReferenceResolver.ts",
    "chars": 9713,
    "preview": "import { ok } from \"assert\";\nimport {\n    ContainerReflection,\n    DeclarationReflection,\n    type DocumentReflection,\n "
  },
  {
    "path": "src/lib/converter/comments/discovery.ts",
    "chars": 24292,
    "preview": "import ts from \"typescript\";\nimport { ReflectionKind } from \"../../models/index.js\";\nimport { CommentStyle } from \"../.."
  },
  {
    "path": "src/lib/converter/comments/index.ts",
    "chars": 12744,
    "preview": "import ts from \"typescript\";\nimport { Comment, type CommentDisplayPart, ReflectionKind } from \"../../models/index.js\";\ni"
  },
  {
    "path": "src/lib/converter/comments/lexer.ts",
    "chars": 499,
    "preview": "import type { ReflectionSymbolId } from \"../../models/index.js\";\n\nexport enum TokenSyntaxKind {\n    Text = \"text\",\n    N"
  },
  {
    "path": "src/lib/converter/comments/lineLexer.ts",
    "chars": 10861,
    "preview": "import type ts from \"typescript\";\nimport { type Token, TokenSyntaxKind } from \"./lexer.js\";\n\nexport function* lexLineCom"
  },
  {
    "path": "src/lib/converter/comments/linkResolver.ts",
    "chars": 10735,
    "preview": "import ts from \"typescript\";\nimport {\n    type CommentDisplayPart,\n    type InlineTagDisplayPart,\n    makeRecursiveVisit"
  },
  {
    "path": "src/lib/converter/comments/parser.ts",
    "chars": 25328,
    "preview": "import assert, { ok } from \"assert\";\nimport { parseDocument as parseYamlDoc } from \"yaml\";\nimport type { CommentContextO"
  },
  {
    "path": "src/lib/converter/comments/rawLexer.ts",
    "chars": 8949,
    "preview": "import { type Token, TokenSyntaxKind } from \"./lexer.js\";\n\n/**\n * Note: This lexer intentionally *only* recognizes inlin"
  },
  {
    "path": "src/lib/converter/comments/tagName.ts",
    "chars": 1690,
    "preview": "/**\n * Determines the name of the parameter/template/property from the tag content\n * when processing `@param x`\n */\nexp"
  },
  {
    "path": "src/lib/converter/comments/textParser.ts",
    "chars": 16527,
    "preview": "/**\n * Parser to handle plain text markdown.\n *\n * Responsible for recognizing relative paths within the text and turnin"
  },
  {
    "path": "src/lib/converter/components.ts",
    "chars": 204,
    "preview": "import { AbstractComponent } from \"../utils/component.js\";\nimport type { Converter } from \"./converter.js\";\n\nexport abst"
  },
  {
    "path": "src/lib/converter/context.ts",
    "chars": 15224,
    "preview": "import { ok as assert } from \"assert\";\nimport ts from \"typescript\";\n\nimport {\n    Comment,\n    ContainerReflection,\n    "
  },
  {
    "path": "src/lib/converter/convert-expression.ts",
    "chars": 1980,
    "preview": "import ts from \"typescript\";\n\n/**\n * Return the default value of the given node.\n *\n * @param node  The TypeScript node "
  },
  {
    "path": "src/lib/converter/converter-events.ts",
    "chars": 434,
    "preview": "export const ConverterEvents = {\n    BEGIN: \"begin\",\n    END: \"end\",\n    CREATE_PROJECT: \"createProject\",\n    CREATE_DEC"
  },
  {
    "path": "src/lib/converter/converter.ts",
    "chars": 33199,
    "preview": "import ts from \"typescript\";\nimport { ok } from \"assert\";\n\nimport type { Application } from \"../application.js\";\nimport "
  },
  {
    "path": "src/lib/converter/factories/index-signature.ts",
    "chars": 3440,
    "preview": "import assert from \"assert\";\nimport type ts from \"typescript\";\nimport {\n    DeclarationReflection,\n    ParameterReflecti"
  },
  {
    "path": "src/lib/converter/factories/signature.ts",
    "chars": 19940,
    "preview": "import ts from \"typescript\";\nimport assert from \"assert\";\nimport {\n    DeclarationReflection,\n    IntrinsicType,\n    Par"
  },
  {
    "path": "src/lib/converter/factories/symbol-id.ts",
    "chars": 1780,
    "preview": "import { ReflectionSymbolId } from \"#models\";\nimport { findPackageForPath, getQualifiedName, normalizePath, resolveDecla"
  },
  {
    "path": "src/lib/converter/index.ts",
    "chars": 349,
    "preview": "export type { CommentParserConfig } from \"./comments/index.js\";\nexport type { ExternalResolveResult, ExternalSymbolResol"
  },
  {
    "path": "src/lib/converter/jsdoc.ts",
    "chars": 8331,
    "preview": "// Converter functions for JSDoc defined types\n// @typedef\n// @callback\n\nimport { ok } from \"assert\";\nimport ts from \"ty"
  },
  {
    "path": "src/lib/converter/plugins/CategoryPlugin.ts",
    "chars": 9673,
    "preview": "import assert from \"assert\";\nimport { ApplicationEvents } from \"../../application-events.js\";\nimport {\n    Comment,\n    "
  },
  {
    "path": "src/lib/converter/plugins/CommentPlugin.ts",
    "chars": 31791,
    "preview": "import {\n    Comment,\n    CommentTag,\n    DeclarationReflection,\n    ParameterReflection,\n    type ReferenceType,\n    ty"
  },
  {
    "path": "src/lib/converter/plugins/GroupPlugin.ts",
    "chars": 10192,
    "preview": "import {\n    ContainerReflection,\n    type DeclarationReflection,\n    type DocumentReflection,\n    type ProjectReflectio"
  },
  {
    "path": "src/lib/converter/plugins/ImplementsPlugin.ts",
    "chars": 25355,
    "preview": "import ts from \"typescript\";\nimport { ApplicationEvents } from \"../../application-events.js\";\nimport {\n    type Containe"
  },
  {
    "path": "src/lib/converter/plugins/IncludePlugin.ts",
    "chars": 16014,
    "preview": "import path from \"path\";\n\nimport { ConverterComponent } from \"../components.js\";\nimport { ConverterEvents } from \"../con"
  },
  {
    "path": "src/lib/converter/plugins/InheritDocPlugin.ts",
    "chars": 8859,
    "preview": "import {\n    Comment,\n    DeclarationReflection,\n    type ProjectReflection,\n    ReflectionKind,\n    ReflectionType,\n   "
  },
  {
    "path": "src/lib/converter/plugins/LinkResolverPlugin.ts",
    "chars": 2046,
    "preview": "import { ConverterComponent } from \"../components.js\";\nimport type { Context, Converter } from \"../../converter/index.js"
  },
  {
    "path": "src/lib/converter/plugins/MergeModuleWithPlugin.ts",
    "chars": 2477,
    "preview": "import { ok } from \"assert\";\nimport { ApplicationEvents } from \"../../application-events.js\";\nimport { Comment, type Pro"
  },
  {
    "path": "src/lib/converter/plugins/PackagePlugin.ts",
    "chars": 5788,
    "preview": "import * as Path from \"path\";\n\nimport { ConverterComponent } from \"../components.js\";\nimport type { Context } from \"../c"
  },
  {
    "path": "src/lib/converter/plugins/SourcePlugin.ts",
    "chars": 7441,
    "preview": "import ts from \"typescript\";\n\nimport { DeclarationReflection, ReflectionKind, SignatureReflection } from \"../../models/i"
  },
  {
    "path": "src/lib/converter/plugins/TypePlugin.ts",
    "chars": 5334,
    "preview": "import {\n    type DeclarationHierarchy,\n    DeclarationReflection,\n    type ProjectReflection,\n    type Reflection,\n    "
  },
  {
    "path": "src/lib/converter/plugins/index.ts",
    "chars": 532,
    "preview": "export { CategoryPlugin } from \"./CategoryPlugin.js\";\nexport { CommentPlugin } from \"./CommentPlugin.js\";\nexport { Group"
  },
  {
    "path": "src/lib/converter/symbols.ts",
    "chars": 49167,
    "preview": "import assert from \"assert\";\nimport ts from \"typescript\";\nimport {\n    DeclarationReflection,\n    IntrinsicType,\n    Lit"
  },
  {
    "path": "src/lib/converter/types.ts",
    "chars": 43928,
    "preview": "import assert from \"assert\";\nimport ts from \"typescript\";\nimport {\n    ArrayType,\n    ConditionalType,\n    DeclarationRe"
  },
  {
    "path": "src/lib/converter/utils/nodes.ts",
    "chars": 1377,
    "preview": "import ts from \"typescript\";\n\nexport function isNamedNode(node: unknown): node is {\n    readonly name:\n        | ts.Iden"
  }
]

// ... and 637 more files (download for full content)

About this extraction

This page contains the full source code of the TypeStrong/typedoc GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 837 files (4.9 MB), approximately 1.3M tokens, and a symbol index with 2666 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!