import { LitElement, TemplateResult, CSSResult } from 'lit'; import { Thread } from '../ai-threads'; declare global { interface HTMLElementTagNameMap { 'forge-ai-threads-search': AiThreadsSearchComponent; } interface HTMLElementEventMap { 'forge-ai-threads-search-query': CustomEvent; 'forge-ai-threads-search-load-more': CustomEvent; 'forge-ai-threads-search-select': CustomEvent; 'forge-ai-threads-search-new-chat': CustomEvent; 'forge-ai-threads-search-rename': CustomEvent; 'forge-ai-threads-search-delete': CustomEvent; } } export interface ForgeAiThreadsSearchQueryEventData { query: string; setResults: (results: Thread[]) => void; } export interface ForgeAiThreadsSearchLoadMoreEventData { query: string; appendResults: (results: Thread[]) => void; } export interface ForgeAiThreadsSearchSelectEventData { id: string; title: string; } export interface ForgeAiThreadsSearchRenameEventData { id: string; oldTitle: string; newTitle: string; onSuccess: () => void; onError: (error?: string) => void; } export interface ForgeAiThreadsSearchDeleteEventData { id: string; thread: Thread; onSuccess: () => void; onError: (error?: string) => void; } export declare const AiThreadsSearchComponentTagName: keyof HTMLElementTagNameMap; /** * @tag forge-ai-threads-search * * @event {CustomEvent} forge-ai-threads-search-query - Fired when search query changes (debounced). * @event {CustomEvent} forge-ai-threads-search-load-more - Fired when user scrolls near bottom for pagination. * @event {CustomEvent} forge-ai-threads-search-select - Fired when a thread is selected. * @event {CustomEvent} forge-ai-threads-search-new-chat - Fired when new chat button clicked. * @event {CustomEvent} forge-ai-threads-search-rename - Fired when thread renamed. Cancelable - if prevented, call onSuccess() to commit or onError() to revert. * @event {CustomEvent} forge-ai-threads-search-delete - Fired when thread delete confirmed. Cancelable - if prevented, call onSuccess() to commit deletion or onError() to revert. * * @description A standalone search component for conversations/threads. Can be slotted into forge-ai-threads * or used independently. Supports both local and external/async search patterns via event callbacks. * Optional rename and delete actions can be enabled via properties. */ export declare class AiThreadsSearchComponent extends LitElement { #private; static styles: CSSResult; 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; placeholder: string; emptyMessage: string; showThreadRename: boolean; showThreadDelete: boolean; private _resultsContainer; private _searchQuery; private _isSearching; private _searchResults; private _editingThreadId; private _hiddenThreadIds; private _searchTimeout?; firstUpdated(): void; updated(changedProperties: Map): void; disconnectedCallback(): void; render(): TemplateResult; }