import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import{type LyraAnchorTargetEventMap}from'../../../internal/anchor-target.js';import type{LyraAnchor,LyraAnchorKind}from'../../viewers/document-viewer/anchors.js';import type{ShikiLanguageSource}from'../code-block/shiki-types.js';import type{LyraMarkedParser}from'./markdown-loader.js';import{MarkdownParserController,type MarkdownHeadingItem,type MarkdownHtmlMode,type MarkdownKatexState,type PendingHighlight}from'./markdown-shared.js';export interface MarkdownRuntimeEventMap extends LyraAnchorTargetEventMap{'lr-render-error':CustomEvent<{error:unknown;}>;'lr-link-click':CustomEvent<{href:string;}>;'lr-content-settled':CustomEvent;}declare class LyraMarkdownRuntimeElement extends LyraElement{} /** Shared per-tag state. The two concrete tags deliberately keep separate parser defaults, * connected-instance sets, and KaTeX resolution state while sharing one lifecycle implementation. */ export interface MarkdownVariantContext{readonly tag:'lr-markdown'|'lr-markdown-core';readonly connectedInstances:Set;readonly sharedParser:MarkdownParserController;readonly katexState:MarkdownKatexState;}export declare function createMarkdownVariantContext(tag:MarkdownVariantContext['tag'],katexState:MarkdownKatexState):MarkdownVariantContext; /** `undefined` means an async attempt became stale; `null` means the current attempt cannot be * highlighted; a string is cacheable highlighted HTML. */ export type MarkdownHighlightAttempt=string|null|undefined;declare const MarkdownRuntimeBase_base:Omit &(new(...args:ConstructorParameters)=>InstanceType &import("../../../lyra.js").LyraAnchorTarget&{renderAnchorLiveRegion():unknown;}); /** * Peer-neutral implementation shared by the full and core Markdown tags. Public reactive fields * remain declared on each concrete class so their CEM/JSDoc surfaces stay explicit; all state, * parsing, streaming, highlighting, theme, anchor, selection, and render orchestration lives here. * The only injected axis is how a fenced block obtains a Shiki highlighter, keeping the full * language-table imports unreachable from the core route. */ export declare abstract class MarkdownRuntimeBase extends MarkdownRuntimeBase_base{abstract content:string;abstract tabSize:number;abstract htmlMode:MarkdownHtmlMode;abstract gfm:boolean;abstract linkTarget:string|null;abstract internalLinkPrefix:string;abstract headingOffset:number;abstract streaming:boolean;abstract highlightCode:boolean;abstract languages?:Readonly>;abstract headingAnchors:boolean;abstract math:boolean;abstract maxHeight:string; /** Anchor kinds resolved by both concrete Markdown tags. */ readonly anchorKinds:readonly LyraAnchorKind[];protected abstract get markdownVariant():MarkdownVariantContext; /** Performs only the variant-specific Shiki loading/tokenization step. */ protected abstract tokenizePendingHighlight(pending:PendingHighlight,languages:Readonly> |undefined,isCurrent:()=>boolean):Promise;private renderedHtml;private isDarkTheme;private deps?;private readonly parser;private headingTree;private highlightHandle?;private textQuoteIndexCache?;private textQuoteLocale?;private markdownTextScopeBuilds;private resolvedHighlightRanges;private mathFailureReported;private highlightCache;private highlightToken;private streamingRenderRaf?;private readonly streamingRenderFrames;private failedHighlightKeys;private inFlightHighlightKeys;private readonly handleKatexResolved;constructor(); /** This instance's configurable parser, once the optional parser peer is available. */ get marked():LyraMarkedParser|undefined; /** Recomputes Shiki palette selection after an imperative theme change. */ refreshTheme():void;connectedCallback():void;disconnectedCallback():void;adoptedCallback():void;protected firstUpdated(changed:PropertyValues):void;protected willUpdate(changed:PropertyValues):void;private cancelStreamingRender;private scheduleStreamingRender;protected getUpdateComplete():Promise;protected updated(changed:PropertyValues):void; /** Immediately refreshes the current source after parser configuration changes. */ renderMarkdown():void;private maybeLoadKatex;private reportMathFailure;private getCachedHighlight;private setCachedHighlight;private highlightPending;private parseMarkdown; /** Returns a defensive copy of the latest document-ordered heading outline. */ getHeadingTree():MarkdownHeadingItem[];private contentRoot;protected applyAnchor(anchor:LyraAnchor):Promise;protected computeSelectionAnchor(range:Range):LyraAnchor|null;private ensureHighlightHandle;private markdownTextIndex;private repaintHighlights;private readonly onContentClick;render():TemplateResult;}export{};