UNPKG

@mui/internal-docs-infra

Version:

MUI Infra - internal documentation creation tools.

40 lines 2.01 kB
import type * as tae from 'typescript-api-extractor'; import { type FormattedProperty, type FormattedParameter, type FormatInlineTypeOptions, type DescriptionReplacement } from "./format.mjs"; import { type TypeRewriteContext } from "./rewriteTypes.mjs"; import type { ExternalTypesCollector } from "./externalTypes.mjs"; import type { HastRoot } from "../../CodeHighlighter/types.mjs"; export type HookTypeMeta = { name: string; description?: HastRoot; /** Plain text version of description for markdown generation */ descriptionText?: string; /** Ordered function parameters */ parameters?: FormattedParameter[]; /** * Expanded properties from a single anonymous object parameter. * When populated, `parameters` should be omitted and headings should * say "Properties" instead of "Parameters". */ expandedProperties?: Record<string, FormattedProperty>; returnValue: Record<string, FormattedProperty> | string; /** Plain text version of returnValue for markdown generation (when returnValue is string) */ returnValueText?: string; /** Description of the return value (parsed markdown as HAST) */ returnValueDescription?: HastRoot; /** Plain text version of returnValueDescription for markdown generation */ returnValueDescriptionText?: string; }; export interface FormatHookOptions { /** Pattern/replacement pairs to apply to descriptions */ descriptionReplacements?: DescriptionReplacement[]; /** Options for inline type formatting (e.g., unionPrintWidth) */ formatting?: FormatInlineTypeOptions; /** Collector for external types discovered during formatting */ externalTypes?: ExternalTypesCollector; } export declare function formatHookData(hook: tae.ExportNode & { type: tae.FunctionNode; }, typeNameMap: Record<string, string>, rewriteContext: TypeRewriteContext, options?: FormatHookOptions): Promise<HookTypeMeta>; export declare function isPublicHook(exportNode: tae.ExportNode): exportNode is tae.ExportNode & { type: tae.FunctionNode; };