export type TDocsWebsiteSourceType = 'markdown' | 'typedoc' | 'openapi'; export interface IDocsWebsiteHeading { id: string; text: string; level: 2 | 3; } export interface IDocsWebsitePage { id: string; title: string; description?: string; sectionId: string; sectionTitle: string; order: number; route: string; sourceType: TDocsWebsiteSourceType; sourcePath: string; html: string; plainText: string; headings: IDocsWebsiteHeading[]; } export interface IDocsWebsiteSection { id: string; title: string; order: number; pageIds: string[]; } export interface IDocsWebsiteVersion { label: string; href?: string; current: boolean; latest: boolean; legacy: boolean; } export interface IDocsWebsiteManifest { schemaVersion: '1.0'; title: string; badge: string; version: string; accentColor: string; versions?: IDocsWebsiteVersion[]; repositoryUrl?: string; sections: IDocsWebsiteSection[]; pages: IDocsWebsitePage[]; } export interface IDocsWebsiteBundledContent { path: string; contentBase64: string; } export interface IDocsWebsiteBuildResult { manifest: IDocsWebsiteManifest; bundledContent: IDocsWebsiteBundledContent[]; } export interface IDocsWebsiteTypedocSourceConfig { entryPoints: string[]; tsconfig?: string; title?: string; section?: string; order?: number; } export interface IDocsWebsiteConfig { title?: string; badge?: string; version?: string; accentColor?: string; repositoryUrl?: string; versions?: Array<{ label: string; href?: string; current?: boolean; latest?: boolean; legacy?: boolean; }>; typedoc?: IDocsWebsiteTypedocSourceConfig[]; } export interface IDocsWebsiteServerOptions { docsDir: string; port?: number; /** Defaults to loopback; use 0.0.0.0 explicitly for network/container access. */ listenHostname?: string; }