import { EventEmitter } from '../../stencil-public-runtime';
export interface SelectItem {
    label: string;
    value: string | number;
    disabled?: boolean;
}
export declare class SpwSelect {
    el: HTMLSpwSelectElement;
    /** Emet un event si la valeur change */
    valueChanged: EventEmitter<string | number>;
    internalValue: string | number;
    /** Valeur sélectionnée actuelle, mutable et reflétée dans le DOM */
    value: string | number;
    /** Label associé au champ de sélection */
    label: string;
    /** Texte du placeholder à afficher lorsque rien n'est sélectionné */
    placeholder: string;
    /** Indique si le champ de sélection est désactivé */
    disabled: boolean;
    /** Nom de l'élément utilisé dans les formulaires pour associer la valeur sélectionnée */
    name: string;
    /** Indique si la sélection est obligatoire dans le formulaire */
    required: boolean;
    /** Taille du champ de sélection : 'large' ou 'medium' */
    size: 'large' | 'medium';
    /** Texte d'assistance affiché sous le label */
    assistiveText?: string;
    /** Message d'erreur à afficher sous le champ de sélection */
    error?: string;
    /** Message d'indication (hint) à afficher sous le champ de sélection */
    hint?: string;
    /** Message de succès à afficher sous le champ de sélection */
    success?: string;
    /** Message de warning à afficher sous le champ */
    warning?: string;
    /** Affiche une icône d'erreur si vrai */
    showErrorIcon?: boolean;
    /** Affiche une icône d'indication si vrai */
    showHintIcon?: boolean;
    /** Affiche une icône de succès si vrai */
    showSuccessIcon?: boolean;
    /** Affiche une icône de warning si vrai */
    showWarningIcon?: boolean;
    /** Liste d'items dynamiques pour générer les options (array d'objects avec label + value) */
    items?: SelectItem[];
    /** Propriété à utiliser comme label des options */
    itemLabel?: string;
    /** Propriété à utiliser comme valeur des options */
    itemValue?: string;
    /** Remplit l'attribut aria-label, utilisé à des fins d'accessibilité */
    accAriaLabel?: string;
    /** 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';
    /** Indique si le champ peut être effacé avec un bouton */
    isClear?: boolean;
    private selectElement;
    private defaultValue;
    internals: ElementInternals;
    handleItemsChange(): void;
    handleValueChange(newValue: string | number): void;
    /** Réinitialise le champ de sélection */
    resetSelect(): Promise<void>;
    /** Définit la valeur du champ de sélection */
    setValue(val: string | number): Promise<void>;
    /** Récupère la valeur actuelle du champ de sélection */
    getValue(): Promise<string | number>;
    componentWillLoad(): void;
    componentDidLoad(): void;
    formResetCallback(): void;
    private getFormValue;
    private getInitialSelectedValue;
    private handleSelectChange;
    private moveOptionsToLightDom;
    private syncDynamicOptions;
    private renderErrorMessage;
    private renderHintMessage;
    private renderSuccessMessage;
    private renderWarningMessage;
    private handleClear;
    private get elementClass();
    render(): any;
}
