import { EventEmitter } from '../../stencil-public-runtime';
export declare class SpwFileUpload {
    private inputElement;
    el: HTMLSpwFileUploadElement;
    /** Indique si le champ est désactivé, rendant le téléversement de fichiers non disponible */
    disabled: boolean;
    /** Indique s'il y a une erreur visuelle associée au composant de téléversement de fichiers */
    error: boolean;
    /** Nom de l'élément utilisé dans les formulaires pour associer la valeur des fichiers */
    name: string;
    /** Valeur actuelle sélectionnée, utilisée pour les formulaires */
    value: File[];
    /** Active ou désactive la zone de dépôt pour le glisser-déposer de fichiers */
    enableDropZone: boolean;
    /** Permet de téléverser plusieurs fichiers si vrai */
    multiple: boolean;
    /** Types de fichiers acceptés, spécifiés sous forme de chaîne de types MIME ou extensions (whitelist) */
    accept: string;
    /** Types de fichiers refusés, spécifiés sous forme de chaîne de types MIME ou extensions (blacklist) */
    refuse: string;
    /** Taille maximale autorisée pour chaque fichier, en Mo */
    maxFileSize: number;
    /** Unité de mesure pour maxFileSize ('mo' ou 'go') */
    maxFileSizeUnit: 'mo' | 'go';
    /** Nombre maximal de fichiers pouvant être téléversés */
    maxFiles: number;
    /** Texte du bouton pour sélectionner un fichier (mode simple) */
    textChooseFile: string;
    /** Texte du bouton pour sélectionner plusieurs fichiers (mode multiple) */
    textChooseFiles: string;
    /** Texte de la zone de dépôt pour un fichier */
    textDropFile: string;
    /** Texte de la zone de dépôt pour plusieurs fichiers */
    textDropFiles: string;
    /** Texte du lien pour choisir depuis l'ordinateur */
    textChooseFromComputer: string;
    /** Texte du lien de suppression */
    textDelete: string;
    /** Texte pour la taille maximale par fichier (utiliser {size} et {unit} comme placeholders) */
    textMaxFileSize: string;
    /** Texte pour le nombre maximum de fichiers (utiliser {count} comme placeholder) */
    textMaxFiles: string;
    /** Texte pour les formats autorisés (utiliser {formats} comme placeholder) */
    textAcceptedFormats: string;
    /** Texte pour les formats refusés (utiliser {formats} comme placeholder) */
    textRefusedFormats: string;
    /** Texte quand tous les formats sont autorisés */
    textAllFormats: string;
    /** Message d'erreur quand le format n'est pas autorisé (utiliser {filename} comme placeholder) */
    textErrorFormat: string;
    /** Message d'erreur quand la taille est dépassée (utiliser {filename} comme placeholder) */
    textErrorSize: string;
    /** Message d'erreur quand le format et la taille sont invalides (utiliser {filename} comme placeholder) */
    textErrorFormatAndSize: string;
    /** Message quand la limite de fichiers est atteinte */
    textLimitReached: string;
    /** Message quand on dépasse la limite de fichiers (utiliser {count} comme placeholder) */
    textLimitExceeded: string;
    selectedFiles: File[];
    fileTypeErrors: string[];
    fileLimitErrors: string[];
    isDragging: boolean;
    isMaxFilesReachedExact: boolean;
    internals: ElementInternals;
    /** Événement émis lorsque la sélection de fichiers change */
    spwFileChange: EventEmitter<{
        files: File[];
    }>;
    watchValueHandler(newValue: File[]): void;
    componentWillLoad(): void;
    get isMaxFilesReached(): boolean;
    private handleFileChange;
    private processFiles;
    private isFileAccepted;
    private isFileSizeValid;
    private updateFormValue;
    /** Réinitialise le champ de téléchargement de fichiers */
    resetInput(): Promise<void>;
    formResetCallback(): void;
    private handleDragOver;
    private handleDragLeave;
    private handleDrop;
    private removeFile;
    private handleKeydown;
    private get elementClass();
    private get hintsMessages();
    render(): any;
}
