export interface RenderMarkdownOptions { /** * Whether the content is still being streamed. Streaming content (the * default) is run through markdown-completion repairs that finish partial * syntax as tokens arrive. Complete content (e.g. finalized user messages) * should set this to `false` so those repairs don't mangle intentional text * such as `[text](` into incomplete-link placeholders. */ streaming?: boolean; } /** * Renders markdown content to sanitized HTML. * Handles incomplete syntax in streaming content, and sanitizes the output to remove unsafe tags and attributes. * * Block-level tables and code blocks are wrapped as keyboard-focusable, labeled * horizontal scroll containers (`role="group"` + `tabindex="0"` + `aria-label`) * so keyboard and screen-reader users can reach and scroll overflowing content. * The `role="group"` ensures the `aria-label` is reliably announced. The focus * ring and scrollbar only appear when the content actually overflows (handled in CSS). * @param content The markdown content to render. * @param options Options for rendering, including whether the content is streaming. * @returns The sanitized HTML string. */ export declare function renderMarkdown(content: string, { streaming }?: RenderMarkdownOptions): string; /** * Renders a single line of markdown to sanitized inline HTML (no block-level * wrapping such as `

`). Used where the agent may emit bare URLs/emails or * raw `` anchors that should render as clickable links, while leaving * plain values (IDs, codes, formulas) untouched. Sanitization strips unsafe * protocols (e.g. `javascript:`) and disallowed tags/attributes. * @param content The markdown content to render. * @returns The sanitized inline HTML string. */ export declare function renderInlineMarkdown(content: string): string;