import { EventEmitter } from '../../stencil-public-runtime';
export interface SearchItem {
    label: string;
    value: string | number;
    url?: string;
    category?: string;
    disabled?: boolean;
}
export declare class SpwSearchField {
    el: HTMLSpwSearchFieldElement;
    private hostElement;
    private textFieldElement;
    /** Événement émis lorsque la valeur du champ de recherche change */
    valueChanged: EventEmitter<string>;
    /** Événement émis lorsqu'une option est sélectionnée dans le dropdown */
    optionSelected: EventEmitter<SearchItem>;
    /** Valeur actuelle du champ de recherche */
    value?: string;
    /** Liste des éléments à filtrer */
    items?: SearchItem[] | string;
    /** Placeholder à afficher dans le champ de recherche */
    placeholder: string;
    /** Taille du champ de recherche */
    size?: 'large' | 'medium';
    /** Label associé au champ de recherche */
    label?: string;
    /** Indique si le champ de recherche est désactivé */
    disabled?: boolean;
    /** Indique si le champ de recherche est arrondi ou pas (communément utilisé dans un hero banner) */
    isRounded?: boolean;
    /** Nom du champ de recherche, utilisé pour les formulaires */
    name: string;
    /** Indique si le champ est requis */
    required?: boolean;
    /** Texte d'assistance affiché sous le label */
    assistiveText?: string;
    /** Texte du lien pour voir tous les résultats */
    viewAllResults?: string;
    /** URL vers laquelle renvoie le lien "voir tous les résultats" */
    viewAllResultsLink?: string;
    /** Soumet le formulaire parent au clic sur le lien "voir tous les résultats" */
    viewAllResultsSubmit?: boolean;
    /** Texte à afficher si pas de résultats */
    noResults?: string;
    /** Texte à afficher pendant le chargement */
    loadingText?: string;
    /** Affiche un bouton submit (loupe) qui déclenche le submit du formulaire parent */
    hasSubmitButton?: boolean;
    /** Nombre minimum de caractères requis pour déclencher la recherche */
    minCharacters?: number;
    /** Indique si le champ est en cours de chargement */
    isLoading?: boolean;
    /** Indique si le dropdown de résultats doit être affiché */
    showDropdown?: boolean;
    /** Titre du tooltip */
    tooltipTitle?: string;
    /** Texte du tooltip */
    tooltipText?: string;
    /** Largeur maximale du tooltip */
    tooltipMaxWidth?: string;
    /** Positionnement du tooltip */
    tooltipDirection?: 'top' | 'bottom' | 'left' | 'right';
    /** Curseur du tooltip */
    tooltipCursor?: 'pointer' | 'default' | 'help' | 'disabled';
    filteredItems: SearchItem[];
    parsedItems: SearchItem[];
    searchText: string;
    isOpen: boolean;
    focusedItemIndex: number | null;
    dropdownDirection: 'up' | 'down';
    private filterTimeout;
    private isSelectingItem;
    private hiddenInput;
    private defaultValue;
    componentWillLoad(): void;
    componentDidLoad(): void;
    private createHiddenInput;
    private updateHiddenInput;
    private initializeFromValue;
    disconnectedCallback(): void;
    /** Réinitialise le champ de recherche */
    resetInput(): Promise<void>;
    /** Définit la valeur du champ de recherche */
    setValue(newValue: string): Promise<void>;
    /** Récupère la valeur actuelle du champ de recherche */
    getValue(): Promise<string>;
    handleValueChange(newValue: string): void;
    parseItems(newValue: SearchItem[] | string): void;
    private handleClickOutside;
    private handleValueChanged;
    private filterItems;
    private normalizeString;
    private selectItem;
    private determineDropdownDirection;
    private handleKeyDown;
    private highlightMatch;
    private handleSubmit;
    private get elementClass();
    render(): any;
}
