UNPKG

@stacksjs/dtsx

Version:

A modern, fast .d.ts generation tool, powered by Bun.

98 lines (97 loc) 2.79 kB
import type { Declaration } from './types'; /** * Parse JSDoc comments from a declaration */ export declare function parseJSDoc(comments: string[] | undefined): JSDocInfo; /** * Extract documentation from source files */ export declare function extractDocumentation(files: string[], config?: Partial<DocsConfig>): Promise<Documentation>; /** * Generate markdown documentation */ export declare function generateMarkdown(docs: Documentation, config?: Partial<DocsConfig>): string; /** * Generate HTML documentation */ export declare function generateHTML(docs: Documentation, config?: Partial<DocsConfig>): string; /** * Generate JSON documentation */ export declare function generateJSON(docs: Documentation, config?: Partial<DocsConfig>): string; /** * Generate documentation in TypeDoc-compatible JSON format */ export declare function generateTypeDocJSON(docs: Documentation): string; /** * Generate and write documentation files */ export declare function generateDocs(files: string[], config: DocsConfig): Promise<void>; /** * Create a documentation generator with preset configuration */ export declare function createDocsGenerator(config?: Partial<DocsConfig>): { extract: (files: string[]) => Promise<Documentation> generateMarkdown: (docs: Documentation) => string generateHTML: (docs: Documentation) => string generateJSON: (docs: Documentation) => string parseJSDoc: typeof parseJSDoc }; /** * Documentation configuration */ export declare interface DocsConfig { format: 'markdown' | 'html' | 'json' outdir: string includePrivate?: boolean includeInternal?: boolean groupByCategory?: boolean title?: string description?: string includeSourceLinks?: boolean sourceBaseUrl?: string includeTypes?: boolean splitByModule?: boolean template?: 'default' | 'minimal' | 'detailed' customCss?: string includeSidebar?: boolean } /** * Parsed JSDoc information */ export declare interface JSDocInfo { description: string params: Array<{ name: string, type?: string, description: string, optional?: boolean }> returns?: { type?: string, description: string } examples: string[] tags: Record<string, string[]> deprecated?: string since?: string see: string[] throws: Array<{ type?: string, description: string }> category?: string } /** * Documentation entry for a declaration */ export declare interface DocEntry { name: string kind: Declaration['kind'] signature: string jsdoc: JSDocInfo isExported: boolean isDefault?: boolean sourceFile?: string sourceLine?: number members?: DocEntry[] } /** * Documentation output structure */ export declare interface Documentation { title: string description?: string entries: DocEntry[] categories: Map<string, DocEntry[]> generatedAt: Date }