import { LitElement, TemplateResult, CSSResult } from 'lit'; import { Thread } from '../ai-threads'; declare global { interface HTMLElementTagNameMap { 'forge-ai-conversations-panel': AiConversationsPanelComponent; } interface HTMLElementEventMap { 'forge-ai-conversations-panel-select': CustomEvent; 'forge-ai-conversations-panel-new-chat': CustomEvent; 'forge-ai-conversations-panel-close': CustomEvent; 'forge-ai-conversations-panel-search': CustomEvent; 'forge-ai-conversations-panel-load-more': CustomEvent; 'forge-ai-conversations-panel-rename': CustomEvent; 'forge-ai-conversations-panel-delete': CustomEvent; } } export interface ForgeAiConversationsPanelSelectEventData { id: string; title: string; } export interface ForgeAiConversationsPanelSearchEventData { query: string; setResults: (results: Thread[]) => void; } export interface ForgeAiConversationsPanelLoadMoreEventData { query: string; appendResults: (results: Thread[]) => void; } export interface ForgeAiConversationsPanelRenameEventData { id: string; oldTitle: string; newTitle: string; onSuccess: () => void; onError: (error?: string) => void; } export interface ForgeAiConversationsPanelDeleteEventData { id: string; thread: Thread; onSuccess: () => void; onError: (error?: string) => void; } export declare const AiConversationsPanelComponentTagName: keyof HTMLElementTagNameMap; /** * @tag forge-ai-conversations-panel * * @event {CustomEvent} forge-ai-conversations-panel-select - Fired when a conversation thread is selected. * @event {CustomEvent} forge-ai-conversations-panel-new-chat - Fired when the new chat list item is clicked. * @event {CustomEvent} forge-ai-conversations-panel-close - Fired when the close button is clicked. * @event {CustomEvent} forge-ai-conversations-panel-search - Fired when search query changes (debounced). Cancelable - if prevented, shows loading and waits for setResults callback. * @event {CustomEvent} forge-ai-conversations-panel-load-more - Fired when scrolling near bottom in recent chats or search chats. Query field differentiates contexts. Always shows loading - call appendResults([]) to signal end. * @event {CustomEvent} forge-ai-conversations-panel-rename - Fired when thread renamed. Cancelable - if prevented, call onSuccess() to commit or onError() to revert. Otherwise optimistically updated. * @event {CustomEvent} forge-ai-conversations-panel-delete - Fired when thread delete confirmed. Cancelable - if prevented, call onSuccess() to commit deletion or onError() to revert. Otherwise optimistically removed. * * @description Standalone conversations list panel with header, new chat action, search, and thread list. * Used within chatbot components for conversation history navigation. */ export declare class AiConversationsPanelComponent extends LitElement { #private; static styles: CSSResult; recentThreads: 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; selectedThreadId: string | null; showConversationRename: boolean; showConversationDelete: boolean; private _viewState; private _isSearching; private _searchResults; private _searchQuery; private _editingThreadId; private _hiddenThreadIds; private _openMenuThreadId; private _searchInputMain; private _searchInputSearch; private _threadListContainer; connectedCallback(): void; disconnectedCallback(): void; firstUpdated(): void; updated(changedProperties: Map): void; resetToMainView(): void; render(): TemplateResult; }