import { IMarkdownString } from '../common/htmlContent.js'; import * as marked from '../common/marked/marked.js'; import { URI } from '../common/uri.js'; import { FormattedTextRenderOptions } from './formattedTextRenderer.js'; export interface MarkedOptions extends marked.MarkedOptions { baseUrl?: never; } export interface MarkdownRenderOptions extends FormattedTextRenderOptions { readonly codeBlockRenderer?: (languageId: string, value: string) => Promise; readonly codeBlockRendererSync?: (languageId: string, value: string, raw?: string) => HTMLElement; readonly asyncRenderCallback?: () => void; readonly fillInIncompleteTokens?: boolean; readonly remoteImageIsAllowed?: (uri: URI) => boolean; readonly sanitizerOptions?: ISanitizerOptions; } export interface ISanitizerOptions { replaceWithPlaintext?: boolean; allowedTags?: string[]; } /** * Low-level way create a html element from a markdown string. * * **Note** that for most cases you should be using {@link import('../../editor/browser/widget/markdownRenderer/browser/markdownRenderer.js').MarkdownRenderer MarkdownRenderer} * which comes with support for pretty code block rendering and which uses the default way of handling links. */ export declare function renderMarkdown(markdown: IMarkdownString, options?: MarkdownRenderOptions, markedOptions?: Readonly): { element: HTMLElement; dispose: () => void; }; export declare const allowedMarkdownAttr: string[]; /** * Strips all markdown from `string`, if it's an IMarkdownString. For example * `# Header` would be output as `Header`. If it's not, the string is returned. */ export declare function renderStringAsPlaintext(string: IMarkdownString | string): string; /** * Strips all markdown from `markdown` * * For example `# Header` would be output as `Header`. * * @param withCodeBlocks Include the ``` of code blocks as well */ export declare function renderMarkdownAsPlaintext(markdown: IMarkdownString, withCodeBlocks?: boolean): string; export declare function fillInIncompleteTokens(tokens: marked.TokensList): marked.TokensList;