import { LitElement, nothing } from "lit"; import type { TemplateResult } from "lit"; import "../primitives/index.js"; import "../button/index.js"; export type BubbleVariant = "user" | "bot"; export interface BubbleAttachment { id?: string; name: string; kind: "image" | "file" | string; dataUrl?: string; } export interface BubbleArtifact { title: string; sub?: string[]; provider?: string; } declare class LightElement extends LitElement { createRenderRoot(): HTMLElement | DocumentFragment; } /** * @fires artifact-download - Fired when an artifact download is requested. * @fires artifact-open - Fired when an artifact is opened. */ export declare class XmBubbleGroup extends LightElement { variant: BubbleVariant; private _authoredChildren; connectedCallback(): void; render(): TemplateResult; updated(): void; } export declare class XmBubble extends LightElement { variant: BubbleVariant; attachments: BubbleAttachment[]; artifact: BubbleArtifact | null; download: boolean; text: string; bodyHtml: string; private _authored; connectedCallback(): void; private _onArtifactOpen; private _onArtifactDownload; private _attachmentTemplate; private _artifactTemplate; render(): TemplateResult; updated(): void; } export declare class XmBubbleActions extends LightElement { ts: string; ariaLabel: string; private _authored; private _copyResetTimer; private _stragglerObserver; connectedCallback(): void; disconnectedCallback(): void; private _isRenderedShell; private _harvestAuthored; private _onDelegatedClick; private _showCopiedFeedback; render(): TemplateResult; updated(): void; } export declare class XmArtifactChip extends LightElement { artifact: BubbleArtifact | null; download: boolean; private _open; private _download; render(): TemplateResult | typeof nothing; } declare global { interface HTMLElementTagNameMap { "xm-bubble-group": XmBubbleGroup; "xm-bubble": XmBubble; "xm-bubble-actions": XmBubbleActions; "xm-artifact-chip": XmArtifactChip; } } export {};