import { MarkdownRenderOptions } from "../../../../../base/browser/markdownRenderer.js";
import { IMarkdownString, MarkdownStringTrustedOptions } from "../../../../../base/common/htmlContent.js";
import { IDisposable } from "../../../../../base/common/lifecycle.js";
import { IOpenerService } from "../../../../../platform/opener/common/opener.service.js";
import { ILanguageService } from "../../../../common/languages/language.service.js";
import { ICodeEditor } from "../../../editorBrowser.js";
export interface IMarkdownRenderResult extends IDisposable {
    readonly element: HTMLElement;
}
export interface IMarkdownRendererOptions {
    readonly editor?: ICodeEditor;
    readonly codeBlockFontFamily?: string;
    readonly codeBlockFontSize?: string;
}
/**
 * Markdown renderer that can render codeblocks with the editor mechanics. This
 * renderer should always be preferred.
 */
export declare class MarkdownRenderer {
    private readonly _options;
    private readonly _languageService;
    private readonly _openerService;
    private static _ttpTokenizer;
    constructor(_options: IMarkdownRendererOptions, _languageService: ILanguageService, _openerService: IOpenerService);
    render(markdown: IMarkdownString, options?: MarkdownRenderOptions, outElement?: HTMLElement): IMarkdownRenderResult;
    private renderCodeBlock;
    protected openMarkdownLink(link: string, markdown: IMarkdownString): Promise<void>;
}
export declare function openLinkFromMarkdown(openerService: IOpenerService, link: string, isTrusted: boolean | MarkdownStringTrustedOptions | undefined, skipValidation?: boolean): Promise<boolean>;
