import { type EventEmitter } from "../../stencil-public-runtime"; export interface SuggestionItem { id: string; text: string; type?: "suggestion" | "history"; scope?: string; resultCount?: number; metadata?: unknown; } export declare class SearchField { private inputElement?; private dropdownElement?; private wrapperElement?; private focusEmitted; el: HTMLIfxSearchFieldElement; /** * Current input value. Mutates as the user types and can be set programmatically. */ value: string; /** * External suggestion items used to populate the dropdown. */ readonly suggestions: SuggestionItem[]; /** * Enable the suggestion dropdown and request events while typing. */ readonly showSuggestions: boolean; /** * Maximum number of items shown in the dropdown (suggestions + history). */ readonly maxSuggestions: number; /** * Maximum number of stored history entries. */ readonly maxHistoryItems: number; /** * Enable local search history behavior and persistence. */ readonly enableHistory: boolean; /** * localStorage key used to persist search history. * This is needed to allow multiple instances of the search field to maintain separate histories if desired, but can be left as default for a shared history across the application. */ readonly historyKey: string; /** * Header text shown when only history entries are displayed. */ readonly historyHeaderText: string; /** * Accessible label for the input. */ readonly ariaLabelText: string | null; /** * ID of the element that labels the input. */ readonly ariaLabelledBy?: string | null; /** * ID of the element that describes the input. */ readonly ariaDescribedBy?: string | null; /** * Accessible label for the clear icon button. */ readonly deleteIconAriaLabel: string; /** * Accessible label for the history item delete button. */ readonly historyDeleteAriaLabel: string; /** * Accessible label for the suggestions listbox. */ readonly dropdownAriaLabel: string; /** * Accessible label prefix for suggestion items. */ readonly suggestionAriaLabel: string; /** * Accessible label prefix for history items. */ readonly historyItemAriaLabel: string; /** * Show the clear icon when there is a non-empty value. */ readonly showDeleteIcon: boolean; /** * Disable the input and related interactions. */ readonly disabled: boolean; /** * Visual size variant. "s" enables compact styling, otherwise defaults to "l". */ readonly size: 's' | 'l'; /** * Placeholder text for the input. */ readonly placeholder: string; /** * Native autocomplete attribute value. */ readonly autocomplete: string; /** * Maximum number of characters allowed in the input. */ readonly maxlength?: number; /** * Emitted on input change with the current value. */ ifxInput: EventEmitter; /** * Emitted to request external suggestions for the given query. */ ifxSuggestionRequested: EventEmitter; /** * Emitted when a suggestion or history item is selected. */ ifxSuggestionSelected: EventEmitter; /** * Emitted when the input gains focus. */ ifxFocus: EventEmitter; /** * Emitted when the input loses focus. */ ifxBlur: EventEmitter; showDeleteIconInternalState: boolean; isFocused: boolean; showDropdown: boolean; filteredSuggestions: SuggestionItem[]; selectedSuggestionIndex: number; searchHistory: string[]; suggestionAnnouncement: string; private announcementToken; handleOutsideClick(event: MouseEvent): void; handleKeyDown(event: KeyboardEvent): void; valueWatcher(newValue: string): void; suggestionsWatcher(): void; private handleInput; private handleDelete; private handleSearch; private focusInput; private blurInput; private loadSearchHistory; /** * Focuses the search input. */ setFocus(): Promise; /** * Public method to clear search history. * This will clear the history from both localStorage and the internal state, and also reset any dropdown-related states. */ clearSearchHistory(): Promise; private addToHistory; private removeFromHistory; private handleHistoryDelete; private requestSuggestions; private updateSuggestions; private navigateSuggestions; private selectSuggestion; private hideDropdown; private cancelSuggestionAnnouncement; private announceSuggestionCount; private showHistoryDropdown; private isShowingOnlyHistory; private renderHighlightedText; componentWillLoad(): void; componentDidLoad(): Promise; componentWillUpdate(): void; render(): any; private getSizeClass; private getWrapperClassNames; private getSuggestionClassNames; }