import type { AnyPlugin } from './plugin.js'; export interface Md2PdfConfig { /** Offline mode: disable outbound network requests */ offline?: boolean; /** Output file path to merge all batch inputs into */ merge?: string; /** Enable watch mode to rebuild PDFs when markdown changes */ watch?: boolean; /** Pure CSS watermark text injected into HTML */ watermark?: string; /** Split AST by heading depth and export multiple PDFs */ splitByHeading?: 1 | 2; /** Encrypt the PDF with an AES-256 password */ password?: string; /** Prepend an image, PDF, or Markdown file as a cover page */ coverPage?: string; /** Remove underlines from hyperlinks */ noLinkUnderline?: boolean; /** Custom CSS color for hyperlinks */ linkColor?: string; /** Theme name or path to custom CSS/dir */ theme?: string; /** Paper size. Default: 'A4' */ paper?: 'A4' | 'Letter' | 'Legal' | 'A3'; /** Page orientation. Default: 'portrait' */ landscape?: boolean; /** Margin: '20mm' or per-side object */ margin?: string | { top?: string; bottom?: string; left?: string; right?: string; }; /** Generate table of contents */ toc?: boolean; /** TOC max heading depth. Default: 3 */ tocDepth?: number; /** TOC section title. Default: 'Table of Contents' */ tocTitle?: string; /** Base font size override (e.g. '14px') */ fontSize?: string; /** Base line height override (e.g. 1.5) */ lineHeight?: string | number; /** Header config */ header?: boolean | { enabled?: boolean; template?: string; }; /** Footer config */ footer?: boolean | { enabled?: boolean; template?: string; }; /** Show page numbers in footer without full header/footer config */ pageNumbers?: boolean | 'bottom-center' | 'bottom-right' | 'top-center' | 'top-right'; addDate?: boolean; addFilename?: boolean; documentMeta?: boolean; /** Mermaid config */ mermaid?: boolean | { enabled?: boolean; timeout?: number; theme?: 'auto' | string; themeVariables?: Record; maxWidth?: string; maxHeight?: string; }; /** KaTeX math config */ math?: boolean | { enabled?: boolean; macros?: Record; numbering?: 'document' | 'section' | false; strict?: boolean; }; /** PDF metadata */ metadata?: { title?: string; author?: string; subject?: string; keywords?: string[]; lang?: string; }; /** Obsidian compatibility config */ obsidian?: { vaultRoot?: string; attachmentFolder?: string; resolveWikiLinks?: boolean; embedNotes?: boolean; maxEmbedDepth?: number; maxAttachmentSizeMb?: number; }; /** Page break config */ pageBreaks?: { h1NewPage?: boolean; hrAsPageBreak?: boolean; }; /** Generate PDF bookmarks/outline from headings */ outline?: boolean; /** Output options */ output?: { dir?: string; filename?: string; merge?: boolean; }; /** Named profiles */ profiles?: Record>; /** Array of plugins */ plugins?: AnyPlugin[]; }