import { URI, UriComponents } from "./uri.js";
export interface MarkdownStringTrustedOptions {
    readonly enabledCommands: readonly string[];
}
export interface IMarkdownString {
    readonly value: string;
    readonly isTrusted?: boolean | MarkdownStringTrustedOptions;
    readonly supportThemeIcons?: boolean;
    readonly supportHtml?: boolean;
    readonly baseUri?: UriComponents;
    uris?: {
        [href: string]: UriComponents;
    };
}
export declare enum MarkdownStringTextNewlineStyle {
    Paragraph = 0,
    Break = 1
}
export declare class MarkdownString implements IMarkdownString {
    value: string;
    isTrusted?: boolean | MarkdownStringTrustedOptions;
    supportThemeIcons?: boolean;
    supportHtml?: boolean;
    baseUri?: URI;
    uris?: {
        [href: string]: UriComponents;
    } | undefined;
    static lift(dto: IMarkdownString): MarkdownString;
    constructor(value?: string, isTrustedOrOptions?: boolean | {
        isTrusted?: boolean | MarkdownStringTrustedOptions;
        supportThemeIcons?: boolean;
        supportHtml?: boolean;
    });
    appendText(value: string, newlineStyle?: MarkdownStringTextNewlineStyle): MarkdownString;
    appendMarkdown(value: string): MarkdownString;
    appendCodeblock(langId: string, code: string): MarkdownString;
    appendLink(target: URI | string, label: string, title?: string): MarkdownString;
    private _escape;
}
export declare function isEmptyMarkdownString(oneOrMany: IMarkdownString | IMarkdownString[] | null | undefined): boolean;
export declare function isMarkdownString(thing: any): thing is IMarkdownString;
export declare function markdownStringEqual(a: IMarkdownString, b: IMarkdownString): boolean;
export declare function escapeMarkdownSyntaxTokens(text: string): string;
export declare function appendEscapedMarkdownCodeBlockFence(code: string, langId: string): string;
export declare function escapeDoubleQuotes(input: string): string;
export declare function removeMarkdownEscapes(text: string): string;
export declare function parseHrefAndDimensions(href: string): {
    href: string;
    dimensions: string[];
};
export declare function markdownCommandLink(command: {
    title: string;
    id: string;
    arguments?: unknown[];
}): string;
