import { default as CortexLightElement } from '../../../../base/src/cortex-light-element.ts';
import { TemplateResult } from 'lit';
import { RendererObject, TokenizerAndRendererExtension } from 'marked';

/**
 * @summary Renders markdown passed in as a string.
 *
 * @description cx-markdown is a Light DOM element, so can be styled from outside the Shadow DOM.
 * cx-markdown is powered by [MarkedJs](https://marked.js.org/).
 *
 * @event cx-ready - Emitted when the markdown has been rendered.
 */
export default class CxMarkdown extends CortexLightElement {
    #private;
    /**
     * The class name to apply to the root element. As this is a light DOM element, it can be styled
     * from outside the Shadow DOM.
     */
    classname: string;
    /**
     * If true, re-adds script tags from inside the markdown to the body, wrapping them in IIFEs.
     */
    liveScript: boolean;
    /**
     * The markdown to render.
     */
    markdown: string;
    /**
     * A marked renderer object to use when rendering the markdown. This overrides the current renderer
     * only for those methods that are specifically defined on the passed in renderer object.
     */
    renderer: RendererObject;
    /**
     * Extensions to add to the marked parser.
     */
    extensions: TokenizerAndRendererExtension[];
    /**
     * The rendered markdown.
     */
    rendered: string;
    connectedCallback(): void;
    updateRendered(): void;
    handleRenderedWithNewMarkdown(): void;
    render(): TemplateResult;
    updated(): void;
}
declare global {
    interface HTMLElementTagNameMap {
        'cx-markdown': CxMarkdown;
    }
}
