{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/typedoc-json/latest.json",
  "title": "JSON Schema for typedoc.json",
  "x-lintel": {
    "source": "https://typedoc.org/schema.json",
    "sourceSha256": "777ab35ac173c4ee329103799d15ec2e268d1a83e61cdd1fc04404ae344ce6a7",
    "fileMatch": [
      "typedoc.json"
    ],
    "parsers": [
      "json"
    ]
  },
  "type": "object",
  "properties": {
    "options": {
      "description": "Specify a json option file that should be loaded. If not specified TypeDoc will look for 'typedoc.json' in the current directory",
      "type": "string"
    },
    "tsconfig": {
      "description": "Specify a TypeScript config file that should be loaded. If not specified TypeDoc will look for 'tsconfig.json' in the current directory",
      "type": "string"
    },
    "compilerOptions": {
      "description": "Selectively override the TypeScript compiler options used by TypeDoc",
      "type": "object",
      "markedOptions": "object"
    },
    "lang": {
      "description": "Sets the language to be used in generation and in TypeDoc's messages",
      "type": "string",
      "default": "en"
    },
    "locales": {
      "description": "Add translations for a specified locale. This option is primarily intended to be used as a stopgap while waiting for official locale support to be added to TypeDoc",
      "default": {}
    },
    "packageOptions": {
      "description": "Set options which will be set within each package when entryPointStrategy is set to packages",
      "default": {}
    },
    "entryPoints": {
      "description": "The entry points of your documentation",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "entryPointStrategy": {
      "description": "The strategy to be used to convert entry points into documentation modules",
      "enum": [
        "resolve",
        "expand",
        "packages",
        "merge"
      ],
      "default": "resolve"
    },
    "alwaysCreateEntryPointModule": {
      "description": "When set, TypeDoc will always create a `Module` for entry points, even if only one is provided",
      "type": "boolean",
      "default": false
    },
    "projectDocuments": {
      "description": "Documents which should be added as children to the root of the generated documentation. Supports globs to match multiple files",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "exclude": {
      "description": "Define patterns to be excluded when expanding a directory that was specified as an entry point",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "externalPattern": {
      "description": "Define patterns for files that should be considered being external",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": [
        "**/node_modules/**"
      ]
    },
    "excludeExternals": {
      "description": "Prevent externally resolved symbols from being documented",
      "type": "boolean",
      "default": false
    },
    "excludeNotDocumented": {
      "description": "Prevent symbols that are not explicitly documented from appearing in the results",
      "type": "boolean",
      "default": false
    },
    "excludeNotDocumentedKinds": {
      "description": "Specify the type of reflections that can be removed by excludeNotDocumented",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": [
        "Module",
        "Namespace",
        "Enum",
        "Variable",
        "Function",
        "Class",
        "Interface",
        "Constructor",
        "Property",
        "Method",
        "CallSignature",
        "IndexSignature",
        "ConstructorSignature",
        "Accessor",
        "GetSignature",
        "SetSignature",
        "TypeAlias",
        "Reference"
      ]
    },
    "excludeInternal": {
      "description": "Prevent symbols that are marked with @internal from being documented",
      "type": "boolean",
      "default": false
    },
    "excludeCategories": {
      "description": "Exclude symbols within this category from the documentation",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "excludePrivate": {
      "description": "Ignore members marked with the private keyword and #private class fields, defaults to true.",
      "type": "boolean",
      "default": true
    },
    "excludePrivateClassFields": {
      "description": "Ignore #private class fields, defaults to true.",
      "type": "boolean",
      "default": true
    },
    "excludeProtected": {
      "description": "Ignore protected variables and methods",
      "type": "boolean",
      "default": false
    },
    "excludeReferences": {
      "description": "If a symbol is exported multiple times, ignore all but the first export",
      "type": "boolean",
      "default": false
    },
    "externalSymbolLinkMappings": {
      "description": "Define custom links for symbols not included in the documentation",
      "default": {}
    },
    "readme": {
      "description": "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",
      "type": "string",
      "default": ""
    },
    "basePath": {
      "description": "Specifies a path which links may be resolved relative to.",
      "type": "string",
      "default": ""
    },
    "outputs": {
      "description": "Specify the location the documentation for the default output should be written to. The default output type may be changed by plugins."
    },
    "out": {
      "description": "Specify the location the documentation for the default output should be written to. The default output type may be changed by plugins.",
      "type": "string",
      "default": "./docs"
    },
    "html": {
      "description": "Specify the location where html documentation should be written to.",
      "type": "string",
      "default": ""
    },
    "json": {
      "description": "Specify the location and filename a JSON file describing the project is written to",
      "type": "string",
      "default": ""
    },
    "pretty": {
      "description": "Specify whether the output JSON should be formatted with tabs",
      "type": "boolean",
      "default": true
    },
    "emit": {
      "description": "Specify what TypeDoc should emit, 'docs', 'both', or 'none'",
      "enum": [
        "both",
        "docs",
        "none"
      ],
      "default": "docs"
    },
    "theme": {
      "description": "Specify the theme name to render the documentation with",
      "type": "string",
      "default": "default"
    },
    "router": {
      "description": "Specify the router name to use to determine file names in the documentation",
      "type": "string",
      "default": "kind"
    },
    "lightHighlightTheme": {
      "description": "Specify the code highlighting theme in light mode",
      "type": "string",
      "default": "light-plus"
    },
    "darkHighlightTheme": {
      "description": "Specify the code highlighting theme in dark mode",
      "type": "string",
      "default": "dark-plus"
    },
    "highlightLanguages": {
      "description": "Specify the languages which will be loaded to highlight code when rendering",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": [
        "bash",
        "console",
        "css",
        "html",
        "javascript",
        "json",
        "jsonc",
        "json5",
        "yaml",
        "tsx",
        "typescript"
      ]
    },
    "ignoredHighlightLanguages": {
      "description": "Specify languages which will be accepted as valid highlight languages, but will not be highlighted at runtime",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "typePrintWidth": {
      "description": "Width at which to wrap code to a new line when rendering a type",
      "type": "number",
      "default": 80
    },
    "customCss": {
      "description": "Path to a custom CSS file to for the theme to import",
      "type": "string",
      "default": ""
    },
    "customJs": {
      "description": "Path to a custom JS file to import",
      "type": "string",
      "default": ""
    },
    "markdownItOptions": {
      "description": "Specify the options passed to markdown-it, the Markdown parser used by TypeDoc",
      "default": {
        "html": true,
        "linkify": true
      }
    },
    "markdownItLoader": {
      "description": "Specify a callback to be called when loading the markdown-it instance. Will be passed the instance of the parser which TypeDoc will use"
    },
    "maxTypeConversionDepth": {
      "description": "Set the maximum depth of types to be converted",
      "type": "number",
      "default": 10
    },
    "name": {
      "description": "Set the name of the project that will be used in the header of the template",
      "type": "string",
      "default": ""
    },
    "includeVersion": {
      "description": "Add the package version to the project name",
      "type": "boolean",
      "default": false
    },
    "disableSources": {
      "description": "Disable setting the source of a reflection when documenting it",
      "type": "boolean",
      "default": false
    },
    "sourceLinkTemplate": {
      "description": "Specify a link template to be used when generating source urls. If not set, will be automatically created using the git remote. Supports {path}, {line}, {gitRevision} placeholders",
      "type": "string",
      "default": ""
    },
    "gitRevision": {
      "description": "Use specified revision instead of the last revision for linking to GitHub/Bitbucket source files. Has no effect if disableSources is set",
      "type": "string",
      "default": ""
    },
    "gitRemote": {
      "description": "Use the specified remote for linking to GitHub/Bitbucket source files. Has no effect if disableGit or disableSources is set",
      "type": "string",
      "default": "origin"
    },
    "disableGit": {
      "description": "Assume that all can be linked to with the sourceLinkTemplate, sourceLinkTemplate must be set if this is enabled. {path} will be rooted at basePath",
      "type": "boolean",
      "default": false
    },
    "displayBasePath": {
      "description": "Specifies the base path to be used when displaying file paths. If not specified, basePath is used.",
      "type": "string",
      "default": ""
    },
    "cname": {
      "description": "Set the CNAME file text, it's useful for custom domains on GitHub Pages",
      "type": "string",
      "default": ""
    },
    "favicon": {
      "description": "Path to favicon to include as the site icon",
      "type": "string",
      "default": ""
    },
    "sourceLinkExternal": {
      "description": "Specifies that source links should be treated as external links to be opened in a new tab",
      "type": "boolean",
      "default": false
    },
    "markdownLinkExternal": {
      "description": "Specifies that http[s]:// links in comments and markdown files should be treated as external links to be opened in a new tab",
      "type": "boolean",
      "default": true
    },
    "githubPages": {
      "description": "Generate a .nojekyll file to prevent 404 errors in GitHub Pages. Defaults to `true`",
      "type": "boolean",
      "default": true
    },
    "hostedBaseUrl": {
      "description": "Specify a base URL to be used in generating a sitemap.xml in our output folder and canonical links. If not specified, no sitemap will be generated",
      "type": "string",
      "default": ""
    },
    "useHostedBaseUrlForAbsoluteLinks": {
      "description": "If set, TypeDoc will produce absolute links to pages on your site using the hostedBaseUrl option",
      "type": "boolean",
      "default": false
    },
    "hideGenerator": {
      "description": "Do not print the TypeDoc link at the end of the page",
      "type": "boolean",
      "default": false
    },
    "customFooterHtml": {
      "description": "Custom footer after the TypeDoc link",
      "type": "string",
      "default": ""
    },
    "customFooterHtmlDisableWrapper": {
      "description": "If set, disables the wrapper element for customFooterHtml",
      "type": "boolean",
      "default": false
    },
    "cacheBust": {
      "description": "Include the generation time in links to static assets",
      "type": "boolean",
      "default": false
    },
    "searchInComments": {
      "description": "If set, the search index will also include comments. This will greatly increase the size of the search index",
      "type": "boolean",
      "default": false
    },
    "searchInDocuments": {
      "description": "If set, the search index will also include documents. This will greatly increase the size of the search index",
      "type": "boolean",
      "default": false
    },
    "cleanOutputDir": {
      "description": "If set, TypeDoc will remove the output directory before writing output",
      "type": "boolean",
      "default": true
    },
    "titleLink": {
      "description": "Set the link the title in the header points to. Defaults to the documentation homepage",
      "type": "string",
      "default": ""
    },
    "navigationLinks": {
      "description": "Defines links to be included in the header",
      "default": {}
    },
    "sidebarLinks": {
      "description": "Defines links to be included in the sidebar",
      "default": {}
    },
    "navigationLeaves": {
      "description": "Branches of the navigation tree which should not be expanded",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "navigation": {
      "description": "Determines how the navigation sidebar is organized",
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "object",
          "properties": {
            "includeCategories": {
              "type": "boolean"
            },
            "includeGroups": {
              "type": "boolean"
            },
            "includeFolders": {
              "type": "boolean"
            },
            "compactFolders": {
              "type": "boolean"
            },
            "excludeReferences": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "headings": {
      "description": "Determines which optional headings are rendered",
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "object",
          "properties": {
            "readme": {
              "type": "boolean"
            },
            "document": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "sluggerConfiguration": {
      "description": "Determines how anchors within rendered HTML are determined.",
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "object",
          "properties": {
            "lowercase": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "includeHierarchySummary": {
      "description": "If set, a reflections hierarchy summary will be rendered to a summary page. Defaults to `true`",
      "type": "boolean",
      "default": true
    },
    "visibilityFilters": {
      "description": "Specify the default visibility for builtin filters and additional filters according to modifier tags",
      "default": {
        "protected": false,
        "private": false,
        "inherited": true,
        "external": false
      },
      "type": "object",
      "properties": {
        "protected": {
          "type": "boolean"
        },
        "private": {
          "type": "boolean"
        },
        "inherited": {
          "type": "boolean"
        },
        "external": {
          "type": "boolean"
        }
      },
      "additionalProperties": false,
      "patternProperties": {
        "^@": {
          "type": "boolean"
        }
      }
    },
    "searchCategoryBoosts": {
      "description": "Configure search to give a relevance boost to selected categories",
      "default": {}
    },
    "searchGroupBoosts": {
      "description": "Configure search to give a relevance boost to selected kinds (eg \"class\")",
      "default": {}
    },
    "useFirstParagraphOfCommentAsSummary": {
      "description": "If set and no @summary tag is specified, TypeDoc will use the first paragraph of comments as the short summary in the module/namespace view",
      "type": "boolean",
      "default": false
    },
    "jsDocCompatibility": {
      "description": "Sets compatibility options for comment parsing that increase similarity with JSDoc comments",
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "object",
          "properties": {
            "defaultTag": {
              "type": "boolean"
            },
            "exampleTag": {
              "type": "boolean"
            },
            "inheritDocTag": {
              "type": "boolean"
            },
            "ignoreUnescapedBraces": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "suppressCommentWarningsInDeclarationFiles": {
      "description": "Prevents warnings due to unspecified tags from being reported in comments within .d.ts files.",
      "type": "boolean",
      "default": true
    },
    "commentStyle": {
      "description": "Determines how TypeDoc searches for comments",
      "enum": [
        "jsdoc",
        "block",
        "line",
        "triple-slash",
        "all"
      ],
      "default": "jsdoc"
    },
    "useTsLinkResolution": {
      "description": "Use TypeScript's link resolution when determining where @link tags point. This only applies to JSDoc style comments",
      "type": "boolean",
      "default": true
    },
    "preserveLinkText": {
      "description": "If set, @link tags without link text will use the text content as the link. If not set, will use the target reflection name",
      "type": "boolean",
      "default": true
    },
    "blockTags": {
      "description": "Block tags which TypeDoc should recognize when parsing comments",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": [
        "@defaultValue",
        "@deprecated",
        "@example",
        "@jsx",
        "@param",
        "@privateRemarks",
        "@remarks",
        "@returns",
        "@see",
        "@throws",
        "@typeParam",
        "@author",
        "@callback",
        "@category",
        "@categoryDescription",
        "@default",
        "@document",
        "@extends",
        "@augments",
        "@yields",
        "@group",
        "@groupDescription",
        "@import",
        "@inheritDoc",
        "@license",
        "@module",
        "@mergeModuleWith",
        "@prop",
        "@property",
        "@return",
        "@satisfies",
        "@since",
        "@sortStrategy",
        "@template",
        "@this",
        "@type",
        "@typedef",
        "@summary",
        "@preventInline",
        "@inlineType",
        "@preventExpand",
        "@expandType"
      ]
    },
    "inlineTags": {
      "description": "Inline tags which TypeDoc should recognize when parsing comments",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": [
        "@link",
        "@inheritDoc",
        "@label",
        "@linkcode",
        "@linkplain",
        "@include",
        "@includeCode"
      ]
    },
    "modifierTags": {
      "description": "Modifier tags which TypeDoc should recognize when parsing comments",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": [
        "@alpha",
        "@beta",
        "@eventProperty",
        "@experimental",
        "@internal",
        "@override",
        "@packageDocumentation",
        "@public",
        "@readonly",
        "@sealed",
        "@virtual",
        "@abstract",
        "@class",
        "@disableGroups",
        "@enum",
        "@event",
        "@expand",
        "@hidden",
        "@hideCategories",
        "@hideconstructor",
        "@hideGroups",
        "@ignore",
        "@inline",
        "@interface",
        "@namespace",
        "@function",
        "@overload",
        "@private",
        "@protected",
        "@showCategories",
        "@showGroups",
        "@useDeclaredType",
        "@primaryExport"
      ]
    },
    "excludeTags": {
      "description": "Remove the listed block/modifier tags from doc comments",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": [
        "@override",
        "@virtual",
        "@privateRemarks",
        "@satisfies",
        "@overload",
        "@inline",
        "@inlineType"
      ]
    },
    "notRenderedTags": {
      "description": "Tags which will be preserved in doc comments, but not rendered when creating output",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": [
        "@showCategories",
        "@showGroups",
        "@hideCategories",
        "@hideGroups",
        "@disableGroups",
        "@expand",
        "@preventExpand",
        "@expandType",
        "@summary",
        "@group",
        "@groupDescription",
        "@category",
        "@categoryDescription"
      ]
    },
    "cascadedModifierTags": {
      "description": "Modifier tags which should be copied to all children of the parent reflection",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": [
        "@alpha",
        "@beta",
        "@experimental"
      ]
    },
    "preservedTypeAnnotationTags": {
      "description": "Block tags whose type annotations should be preserved in the output.",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "categorizeByGroup": {
      "description": "Specify whether categorization will be done at the group level",
      "type": "boolean",
      "default": false
    },
    "groupReferencesByType": {
      "description": "If set, references will be grouped with the type they refer to rather than in a 'References' group",
      "type": "boolean",
      "default": false
    },
    "defaultCategory": {
      "description": "Specify the default category for reflections without a category",
      "type": "string",
      "default": "Other"
    },
    "categoryOrder": {
      "description": "Specify the order in which categories appear. * indicates the relative order for categories not in the list",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "groupOrder": {
      "description": "Specify the order in which groups appear. * indicates the relative order for groups not in the list",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "sort": {
      "description": "Specify the sort strategy for documented values",
      "type": "array",
      "items": {
        "enum": [
          "source-order",
          "alphabetical",
          "alphabetical-ignoring-documents",
          "enum-value-ascending",
          "enum-value-descending",
          "enum-member-source-order",
          "static-first",
          "instance-first",
          "visibility",
          "required-first",
          "kind",
          "external-last",
          "documents-first",
          "documents-last"
        ]
      },
      "default": [
        "kind",
        "instance-first",
        "alphabetical-ignoring-documents"
      ]
    },
    "sortEntryPoints": {
      "description": "If set, entry points will be subject to the same sorting rules as other reflections",
      "type": "boolean",
      "default": true
    },
    "kindSortOrder": {
      "description": "Specify the sort order for reflections when 'kind' is specified",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "watch": {
      "description": "Watch files for changes and rebuild docs on change",
      "type": "boolean",
      "default": false
    },
    "preserveWatchOutput": {
      "description": "If set, TypeDoc will not clear the screen between compilation runs",
      "type": "boolean",
      "default": false
    },
    "skipErrorChecking": {
      "description": "Do not run TypeScript's type checking before generating docs",
      "type": "boolean",
      "default": false
    },
    "showConfig": {
      "description": "Print the resolved configuration and exit",
      "type": "boolean",
      "default": false
    },
    "plugin": {
      "description": "Specify the npm plugins that should be loaded. Omit to load all installed plugins",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "logLevel": {
      "description": "Specify what level of logging should be used",
      "enum": [
        "Verbose",
        "Info",
        "Warn",
        "Error",
        "None"
      ],
      "default": "Info"
    },
    "treatWarningsAsErrors": {
      "description": "If set, all warnings will be treated as errors",
      "type": "boolean",
      "default": false
    },
    "treatValidationWarningsAsErrors": {
      "description": "If set, warnings emitted during validation will be treated as errors. This option cannot be used to disable treatWarningsAsErrors for validation warnings",
      "type": "boolean",
      "default": false
    },
    "intentionallyNotExported": {
      "description": "A list of types which should not produce 'referenced but not documented' warnings",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "requiredToBeDocumented": {
      "description": "A list of reflection kinds that must be documented",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": [
        "Enum",
        "EnumMember",
        "Variable",
        "Function",
        "Class",
        "Interface",
        "Property",
        "Method",
        "Accessor",
        "TypeAlias"
      ]
    },
    "packagesRequiringDocumentation": {
      "description": "A list of packages that must be documented",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "intentionallyNotDocumented": {
      "description": "A list of full reflection names which should not produce warnings about not being documented",
      "type": "array",
      "items": {
        "type": "string"
      },
      "default": []
    },
    "validation": {
      "description": "Specify which validation steps TypeDoc should perform on your generated documentation",
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "object",
          "properties": {
            "notExported": {
              "type": "boolean"
            },
            "invalidLink": {
              "type": "boolean"
            },
            "invalidPath": {
              "type": "boolean"
            },
            "rewrittenLink": {
              "type": "boolean"
            },
            "notDocumented": {
              "type": "boolean"
            },
            "unusedMergeModuleWith": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        }
      ]
    },
    "extends": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "allowTrailingCommas": true
}
