import type { Features, HastNode, HastPluginDefinition, MdastPluginDefinition } from 'satteri'; import type { AstroMarkdownOptions, MarkdownHeading, MarkdownRenderer } from '@astrojs/internal-helpers/markdown'; type HighlightFn = (code: string, lang: string, meta?: string) => Promise; declare module 'satteri' { interface DataMap { astro: SatteriAstroData; } } export interface SatteriAstroData { frontmatter: Record; headings: MarkdownHeading[]; localImagePaths: Set; remoteImagePaths: Set; } export declare function createCollectImagesPlugin(image?: AstroMarkdownOptions['image']): MdastPluginDefinition; export declare function collectHastText(node: HastNode, frontmatter: Record | undefined): string; export declare function makeFragmentNode(html: string): HastNode; export declare function createHeadingIdsPlugin(): HastPluginDefinition; /** Tags with `__ASTRO_IMAGE_` for astro's vite-plugin-markdown to replace with the processed image's attributes. */ export declare function createImageMarkerPlugin(): HastPluginDefinition; export declare function createHighlightPlugin(highlight: HighlightFn, excludeLangs: string[] | undefined, options?: { mdx?: boolean; }): HastPluginDefinition; export interface SatteriMarkdownProcessorOptions extends AstroMarkdownOptions { mdastPlugins?: MdastPluginDefinition[]; hastPlugins?: HastPluginDefinition[]; features?: Features; } /** * Build the highlighter for the Sätteri pipeline, or `undefined` when syntax * highlighting is disabled. Shiki and Prism both resolve to a `HighlightFn` * that turns a code block into a complete `
` HTML string.
 */
export declare function createHighlightFn(syntaxHighlight: AstroMarkdownOptions['syntaxHighlight'], shikiConfig: AstroMarkdownOptions['shikiConfig'] | undefined): Promise;
export declare function createSatteriMarkdownProcessor(opts?: SatteriMarkdownProcessorOptions): Promise;
export {};