import { LitElement, TemplateResult, CSSResult } from 'lit'; declare global { interface HTMLElementTagNameMap { 'forge-ai-threads': AiThreadsComponent; } interface HTMLElementEventMap { 'forge-ai-threads-select': CustomEvent; 'forge-ai-threads-new-chat': CustomEvent; 'forge-ai-threads-search-chats': CustomEvent; 'forge-ai-threads-load-more': CustomEvent; 'forge-ai-threads-rename': CustomEvent; 'forge-ai-threads-delete': CustomEvent; } } export interface Thread { id: string; title: string; createdAt: string; updatedAt?: string; messageCount?: number; } export interface ForgeAiThreadsSelectEventData { id: string; title: string; } export interface ForgeAiThreadsLoadMoreEventData { appendResults: (results: Thread[]) => void; } export interface ForgeAiThreadsRenameEventData { id: string; oldTitle: string; newTitle: string; onSuccess: () => void; onError: (error?: string) => void; } export interface ForgeAiThreadsDeleteEventData { id: string; thread: Thread; onSuccess: () => void; onError: (error?: string) => void; } export declare const AiThreadsComponentTagName: keyof HTMLElementTagNameMap; /** * @tag forge-ai-threads * * @slot - Default slot for chatbot launcher component * * @event {CustomEvent} forge-ai-threads-select - Fired when a thread is selected. * @event {CustomEvent} forge-ai-threads-new-chat - Fired when the new chat button is clicked. * @event {CustomEvent} forge-ai-threads-search-chats - Fired when the search chats button is clicked. * @event {CustomEvent} forge-ai-threads-load-more - Fired when scrolling near bottom. Call appendResults([]) to signal end. * @event {CustomEvent} forge-ai-threads-rename - Fired when thread renamed. Cancelable - if prevented, call onSuccess() to commit or onError() to revert. * @event {CustomEvent} forge-ai-threads-delete - Fired when thread delete confirmed. Cancelable - if prevented, call onSuccess() to commit deletion or onError() to revert. * * @description A form factor component that positions a slotted chatbot launcher alongside a thread navigation drawer. * Manages thread list and selection while delegating chat functionality to the slotted launcher. * All launcher events bubble through unchanged. */ export declare class AiThreadsComponent extends LitElement { #private; static styles: CSSResult; /** Array of threads to display in the navigation list */ threads: Thread[]; /** * Total number of threads available. When set to a positive number and fewer threads * are loaded than the total, infinite scroll is enabled. Leave at 0 (default) to disable * infinite scroll entirely. Useful when all data is loaded upfront. */ totalChats: number; showThreadRename: boolean; showThreadDelete: boolean; private _threadListContainer; /** Currently selected thread ID */ private _selectedThreadId; private _editingThreadId; private _hiddenThreadIds; private _openMenuThreadId; firstUpdated(): void; updated(changedProperties: Map): void; private _handleThreadSelect; render(): TemplateResult; }