import { type EventEmitter } from "../../stencil-public-runtime";
export interface SuggestionItem {
    id: string;
    text: string;
    type?: "suggestion" | "history";
    scope?: string;
    resultCount?: number;
    metadata?: any;
}
export declare class SearchField {
    private inputElement;
    private dropdownElement;
    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 ariaLabel: 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<string>;
    /**
     * Emitted to request external suggestions for the given query.
     */
    ifxSuggestionRequested: EventEmitter<string>;
    /**
     * Emitted when a suggestion or history item is selected.
     */
    ifxSuggestionSelected: EventEmitter<SuggestionItem>;
    /**
     * Emitted when the input gains focus.
     */
    ifxFocus: EventEmitter<void>;
    /**
     * Emitted when the input loses focus.
     */
    ifxBlur: EventEmitter<void>;
    showDeleteIconInternalState: boolean;
    isFocused: boolean;
    showDropdown: boolean;
    filteredSuggestions: SuggestionItem[];
    selectedSuggestionIndex: number;
    searchHistory: string[];
    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;
    /**
     * 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<void>;
    private addToHistory;
    private removeFromHistory;
    private handleHistoryDelete;
    private requestSuggestions;
    private updateSuggestions;
    private navigateSuggestions;
    private selectSuggestion;
    private hideDropdown;
    private showHistoryDropdown;
    private isShowingOnlyHistory;
    private renderHighlightedText;
    componentWillLoad(): void;
    componentDidLoad(): Promise<void>;
    componentWillUpdate(): void;
    render(): any;
    private getSizeClass;
    private getWrapperClassNames;
    private getSuggestionClassNames;
}
