import { marked, Tokens, Marked, Renderer as Renderer$1 } from 'marked';

declare class Renderer extends marked.Renderer {
    space(): string;
    code({ text }: Tokens.Code): string;
    blockquote({ tokens }: Tokens.Blockquote): string;
    html(token: Tokens.HTML): string;
    heading({ tokens, depth }: Tokens.Heading): string;
    hr(): string;
    list({ ordered, items }: Tokens.List): string;
    listitem({ tokens, task, checked, loose }: Tokens.ListItem): string;
    checkbox({ checked }: Tokens.Checkbox): string;
    paragraph({ tokens }: Tokens.Paragraph): string;
    table({ header, rows }: Tokens.Table): string;
    tablerow({ text }: Tokens.TableRow): string;
    tablecell({ tokens, header }: Tokens.TableCell): string;
    strong({ tokens }: Tokens.Strong): string;
    em({ tokens }: Tokens.Em): string;
    codespan({ text }: Tokens.Codespan): string;
    br(): string;
    del({ tokens }: Tokens.Del): string;
    link({ href, tokens }: Tokens.Link): string;
    image({ href }: Tokens.Image): string;
    text(token: Tokens.Text | Tokens.Escape): string;
}

type ConvertOptions = {
    marked?: Marked;
    renderer?: Renderer$1;
};
declare class Converter {
    private readonly marked;
    private readonly renderer;
    constructor(options?: ConvertOptions);
    /**
     * Converts Markdown to Steam BBCode.
     * @param markdown Markdown to convert.
     */
    convert(markdown: string): Promise<string>;
}

export { type ConvertOptions, Converter, Renderer };
