export type CommentParagraphContent = Array< | CommentBlockTag | CommentInlineTag | CommentLinkTag | CommentFencedCode | CommentInlineCode | CommentHTMLStartTag | CommentHTMLEndTag | string >; export interface CommentParagraphContentBase { kind: K; } export interface CommentInlineTag extends CommentParagraphContentBase<'inlineTag'> { tagName: string; content?: C; raw?: string; } export interface CommentLinkTag extends CommentParagraphContentBase<'linkTag'>, Pick> { url?: string; } export interface CommentBlockTag extends CommentParagraphContentBase<'blockTag'>, Pick< CommentInlineTag, Exclude, 'kind'> > {} export interface CommentParam extends CommentParagraphContentBase<'param'>, Pick> { name?: string; type?: string; } export interface CommentFencedCode extends CommentParagraphContentBase<'fencedCode'> { language: string; code: string; } export interface CommentInlineCode extends CommentParagraphContentBase<'inlineCode'> { code: string; } export interface CommentHTMLEndTag extends CommentParagraphContentBase<'htmlEndTag'> { name: string; } export interface CommentHTMLStartTag extends CommentParagraphContentBase<'htmlStartTag'> { name: string; isSelfClosingTag: boolean; attributes?: Array<{ name: string; value: string }>; } export interface CommentData { summary: CommentParagraphContent; remarks?: CommentParagraphContent; deprecated?: CommentParagraphContent; params?: CommentParam[]; typeParams?: CommentParam[]; customTags?: CommentBlockTag[]; modifiers?: string[]; returns?: any; }