//#region src/cleanStarlightMarkdown.d.ts type StarlightFrontmatterMode = "remove" | "title-as-heading" | "keep-title-description" | "preserve"; type StarlightInternalLinkMode = { mode: "preserve"; } | { mode: "baseUrl"; baseUrl: string; } | { mode: "file"; }; interface CleanStarlightMarkdownOptions { frontmatter?: StarlightFrontmatterMode; internalLinks?: StarlightInternalLinkMode; } /** * Cleans Markdown and MDX content authored for Starlight so it can be reused as plain Markdown. * * @param {string} content - Raw Markdown or MDX content from a Starlight documentation page. * @param {CleanStarlightMarkdownOptions} [options] - Options for frontmatter handling and internal link rewriting. * @param {StarlightFrontmatterMode} [options.frontmatter="preserve"] - How to handle frontmatter. * Use `"preserve"` to keep all frontmatter, `"remove"` to remove it, `"title-as-heading"` to convert `title` to an `h1`, * or `"keep-title-description"` to keep only `title` and `description`. * @param {StarlightInternalLinkMode} [options.internalLinks] - How to handle absolute internal Markdown links. * Use `{ mode: "preserve" }` to keep links unchanged, `{ mode: "baseUrl", baseUrl }` to prefix internal links, * or `{ mode: "file" }` to rewrite internal links to local `.md` files. * * @returns {string} Cleaned Markdown content. * * @example * ```ts * import { cleanStarlightMarkdown } from "tidymd"; * * const markdown = cleanStarlightMarkdown(content, { * frontmatter: "title-as-heading", * internalLinks: { * mode: "baseUrl", * baseUrl: "https://docs.example.com", * }, * }); * ``` * * @example * ```ts * import { cleanStarlightMarkdown } from "tidymd"; * * const markdown = cleanStarlightMarkdown(content, { * frontmatter: "keep-title-description", * internalLinks: { mode: "file" }, * }); * ``` */ declare const cleanStarlightMarkdown: (content: string, options?: CleanStarlightMarkdownOptions) => string; //#endregion //#region src/extractStarlightFrontmatter.d.ts type StarlightFrontmatter = Record; /** * Extracts the YAML frontmatter from Markdown or MDX content authored for Starlight. * * Starlight frontmatter can be extended by integrations or user schemas, so the default * return type is `Record`. Pass a generic type when your project has a * known schema. * * @param {string} content - Raw Markdown or MDX content from a Starlight documentation page. * * @returns {TFrontmatter | null} Parsed frontmatter, or `null` when the file has no frontmatter block. * * @example * ```ts * const frontmatter = extractStarlightFrontmatter(content); * ``` * * @example * ```ts * interface DocsFrontmatter { * title: string; * description?: string; * sidebar?: { order?: number }; * } * * const frontmatter = extractStarlightFrontmatter(content); * ``` */ declare const extractStarlightFrontmatter: (content: string) => TFrontmatter | null; //#endregion export { CleanStarlightMarkdownOptions, StarlightFrontmatter, StarlightFrontmatterMode, StarlightInternalLinkMode, cleanStarlightMarkdown, extractStarlightFrontmatter };