import { LitElement } from "lit"; import type { TemplateResult } from "lit"; import "../button/index.js"; type ArtifactView = "preview" | "code"; /** * @fires close - Fired when the element requests to close. * @fires refresh - Fired when a refresh is requested. * @fires view-change - Fired when the active view changes. */ export declare class XmArtifact extends LitElement { title: string; sub: string[] | null; subCsv: string; view: ArtifactView; showRefresh: boolean; showClose: boolean; private _bodies; private _uid; createRenderRoot(): HTMLElement | DocumentFragment; connectedCallback(): void; /** * Imperatively set the preview/code body nodes from a host. Replaces any * authored or previously-set bodies. Used by to hand the * panel its slot content; the chat shell can't author them as direct * children of the lit-rendered tag without the snapshot * timing race that this method sidesteps. */ setBodies(preview: ChildNode[], code: ChildNode[]): void; private _setView; private _onTabKeydown; private _onRefresh; private _onClose; private _subItems; render(): TemplateResult; updated(): void; } declare global { interface HTMLElementTagNameMap { "xm-artifact": XmArtifact; } } export {};