import{type TemplateResult,type PropertyValues}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import type{ShikiLanguageInput}from'../code-block/shiki-types.js';import type{MarkdownHtmlMode}from'../markdown/markdown-shared.js'; /** Runs {@link APPEND_MONOTONIC_MARKDOWN_PATTERNS}/{@link BOUNDARY_SENSITIVE_MARKDOWN_PATTERNS} * against `text`, used whenever `contentMode` is left unset (auto-detect). Exported so the * heuristic is directly testable without going through either variant's render cycle. */ export declare function looksLikeMarkdown(text:string):boolean;export type StreamingTextContentMode='auto'|'plain'|'markdown';export interface LyraStreamingTextEventMap{'lr-content-settled':CustomEvent;} /** * Shared runtime for ``/`` -- token coalescing, * `contentMode` auto-detection, and the blinking cursor -- factored out so neither variant * duplicates it. The two leaf classes differ only in which Markdown element `renderMarkdown()` * composes: `` for the default variant, `` for the build-lean one. * * Deliberately not tagged internal: both concrete streaming-text tags publicly extend this class, * so stripping it would leave both concrete classes' `extends` clauses naming a type absent from * the shipped `.d.ts`, breaking the package's own build. */ export declare abstract class StreamingTextRuntimeBase extends LyraElement{static styles:import("lit").CSSResultGroup[]; /** The full current text so far -- always the complete string, never a * delta to append. */ content:string; /** Shows the blinking cursor after the rendered text. Reflects, so a host * can also target `[streaming]` in CSS. */ streaming:boolean; /** Trailing-edge coalesce window, in ms, for `content` updates -- see the * class doc. */ coalesceMs:number; /** Rendering mode. `auto` uses `looksLikeMarkdown`; the other values force * their named mode regardless of content. */ contentMode:StreamingTextContentMode; /** Forwarded verbatim to the composed Markdown element's own `languages` -- a fine-grained, * explicit language-grammar bundle scoping shiki's build output to just those grammars. Unset * leaves the composed element's own default untouched: the full variant falls back to its * ~200-language dynamic-import table, the core variant renders unmatched fences as plain text. */ languages?:Readonly>; /** Forwarded verbatim to the composed Markdown element's own `tabSize` -- the tab-stop width * used to expand tabs in leading indentation before parsing. `4` (the default) matches the * composed element's own default. */ tabSize:number; /** Forwarded verbatim to the composed Markdown element's own `htmlMode` -- how authored raw * HTML is handled (`'sanitize'`, `'escape'`, or `'trusted'`). `'sanitize'` (the default) * matches the composed element's own default. */ htmlMode:MarkdownHtmlMode; /** Forwarded verbatim to the composed Markdown element's own `gfm` -- GitHub-flavored Markdown * (tables, strikethrough, autolinks, task lists). `true` (the default) matches the composed * element's own default. */ gfm:boolean; /** Forwarded verbatim to the composed Markdown element's own `linkTarget` -- the `target` * applied to every rendered ``, with `rel="noopener noreferrer"` always added by the * composed element alongside it whenever a `target` is emitted. `'_blank'` (the default) * matches the composed element's own default; set to `null` (or the empty string, e.g. via the * `link-target=""` attribute) to omit `target`/`rel` entirely so rendered links open in the * same tab. */ linkTarget:string|null; /** Forwarded verbatim to the composed Markdown element's own `internalLinkPrefix`. Empty (the * default) matches the composed element's own default -- every link is treated as external. */ internalLinkPrefix:string; /** Forwarded verbatim to the composed Markdown element's own `headingOffset`. `0` (the * default) matches the composed element's own default. */ headingOffset:number; /** Forwarded verbatim to the composed Markdown element's own `highlightCode`. `true` (the * default) matches the composed element's own default. */ highlightCode:boolean; /** Forwarded verbatim to the composed Markdown element's own `headingAnchors`. `false` (the * default) matches the composed element's own default. */ headingAnchors:boolean; /** Forwarded verbatim to the composed Markdown element's own `math`. `false` (the default) * matches the composed element's own default. */ math:boolean; /** Forwarded verbatim to the composed Markdown element's own `maxHeight`. Empty (the default) * matches the composed element's own default -- the rendered document never scrolls * internally. */ maxHeight:string;protected displayedContent:string;private lastScannedContent?;private lastScannedResult;private lastMonotonicResult;private readonly coalescer; /** `coalesceMs` normalized to a finite, non-negative timer delay before it ever reaches * `Announcer.throttleMs` (and, from there, a raw `setTimeout()` call) -- a `NaN`/negative raw * value would otherwise feed the platform a nonsensical delay (clamped to `0` by the * browser, firing on every burst instead of ever actually coalescing) rather than falling * back to this component's own constructed default. */ private get safeCoalesceMs();constructor();connectedCallback():void;protected willUpdate(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;disconnectedCallback():void;adoptedCallback():void; /** Whether Markdown mode is actually in effect right now, resolving the * `contentMode` property against the memoized `looksLikeMarkdown` * result for the currently-displayed content (see `lastScannedContent`/ * `lastScannedResult` above). */ protected get effectiveMarkdown():boolean;protected stopOwnedEvent(event:Event):void; /** Renders the Markdown-mode composed element for `displayedContent` -- `` for * `LyraStreamingText`, `` for `LyraStreamingTextCore`. The only difference * between the two leaf classes. */ protected abstract renderMarkdown():TemplateResult;render():TemplateResult;}