import { LitElement, TemplateResult, PropertyValues } from 'lit';
import { PrismHighlighter } from './PrismHighlighter.js';
/**
 * Syntax highlighting via Prism
 *
 * ### Example
 *
 * ```html
 * <prism-highlight id="c1" lang="markdown"></prism-highlight>
 * <script>
 *  document.querySelector('#c1').code = '# Test highlight';
 * &lt;/script>
 * ```
 *
 * The `lang` attribute is required and the component will not start parsing data without it.
 *
 * Changing the `lang` and `code` properties together, do it in less than 10 ms.
 * The element is set to commit changes after this time period. Otherwise it may display
 * old and new code due to the asynchronous nature of the code highlighter.
 *
 * @fires link - An event dispatched when the user click on the link. The detail object has the `url`
 *               property with the link value and the `asNew` property set to `true` when ctrl/cmd
 *               key was pressed when the link was clicked.
 */
export default class PrismHighlight extends LitElement {
    /**
     * A data to be highlighted and rendered.
     * @attribute
     */
    accessor code: string | undefined;
    /**
     * Prism supported language.
     * @attribute
     */
    accessor lang: string;
    /**
     * When set it ignores syntax highlighting and only renders the code.
     * @attribute
     */
    accessor raw: boolean | undefined;
    accessor outputElement: HTMLElement | null;
    protected highlighter: PrismHighlighter;
    protected tokenizeResults?: string;
    protected updated(cp: PropertyValues | Map<PropertyKey, unknown>): void;
    firstUpdated(): void;
    reset(): void;
    protected handleHighlight(code: string): void;
    protected rawChanged(): void;
    /**
     * Highlights the code.
     */
    protected highlight(): void;
    /**
     * Handler for click events.
     */
    protected handleLinks(e: MouseEvent): void;
    render(): TemplateResult;
    protected renderHighlighted(): TemplateResult;
    protected renderRaw(): TemplateResult;
}
//# sourceMappingURL=PrismHighlight.d.ts.map