import { BreakpointObserver } from '@angular/cdk/layout';
import { ChangeDetectorRef, ElementRef, EventEmitter, OnInit } from '@angular/core';
import { DefaultControlComponent, DsfrFileSizeUnit, DsfrI18nService, DsfrSeverity } from '@edugouvfr/ngx-dsfr';
import * as i0 from "@angular/core";
export declare class DsfrUploadDndComponent extends DefaultControlComponent<File[]> implements OnInit {
    private cdr;
    /** @internal */
    inputFile: ElementRef<HTMLInputElement>;
    /** @internal */
    inlineDeleteBtn: ElementRef<HTMLButtonElement>;
    /** Version inline du composant. */
    inline: boolean;
    /** Label du button. */
    buttonLabel: string;
    /** En mode full, n'affiche pas l'illustration. */
    hideIllustration: boolean;
    /** Texte indiquant le format de fichier accepté. Doit refléter la valeur donnée à l'attribut `accept` */
    formatAsked: string | undefined;
    /** Texte indiquant le poids maximal autorisé du ou des fichiers. La valeur est seulement indicative et n'entraine aucune vérification interne au composant. */
    maxSizeInfo: string | undefined;
    /** Unité de poids de fichier autorisé. */
    sizeUnit: DsfrFileSizeUnit;
    /** Ajoute l'attribut `aria-invalid` sur le champ de formulaire. */
    ariaInvalid: string;
    /**
     * L'attribut `accept` prend comme valeur une chaîne de caractères contenant une ou plusieurs spécificateurs de type de fichier unique, séparées par des virgules.
     * Ces spécificateurs décrivent les types de fichiers pouvant être sélectionnés par l'utilisateur.
     *
     * ex: .jpg,.png,audio/*...
     */
    accept: string;
    /** Permet l'ajout de plusieurs fichiers à la fois. */
    multiple: boolean;
    /** Message d'information lié au composant. */
    message: string | undefined;
    /** Représente la sévérité du message. */
    messageSeverity: DsfrSeverity;
    /**
     * Id de l'élément affichant les messages associé à l'éditeur. A renseigner si vous souhaitez positionner un attribut
     * `aria-describedby` référençant votre message au niveau de l'élément hôte de l'éditeur.
     *
     * Attention : cet input est statique et doit être connu à l'initialisation du composant.
     */
    messagesGroupId: string;
    /** Evénement émis à la sélection d'un ou plusieurs fichiers. */
    selectionChange: EventEmitter<File[]>;
    /** Evénement émis lorsque l'utilisateur annule la sélection. */
    fileBrowsingCancel: EventEmitter<void>;
    /** @internal */
    i18n: DsfrI18nService;
    protected breakpointObserver: BreakpointObserver;
    protected customBreakpoint: string;
    protected restitutionSelectedFiles: string;
    protected messageExpandButton: string;
    protected formatAskedUniqueId: string;
    protected ariaDescribedby: string;
    /** Gère l'affichage du bon markup en mode mobile. */
    protected isMobile: import("@angular/core").Signal<boolean>;
    private _renderer;
    constructor(cdr: ChangeDetectorRef);
    /**
     * Surcharge permettant de gérer la mise à jour du DOM.
     *
     * @internal
     */
    writeValue(value: File[] | undefined): void;
    setDisabledState(isDisabled: boolean): void;
    /** @internal */
    ngOnInit(): void;
    /**
     * Permet de programmatiquement réinitialiser le champ après une sélection de fichier(s).
     * @deprecated utiliser directement value
     */
    reset(): void;
    /**
     * Fonction issue de la lib principale.
     */
    protected onFileBrowsingCancel(): void;
    /**
     * Fonction issue de la lib principale.
     */
    /** TODO: en version inline, après la sélection d'un fichier forcer le focus sur le btn de suppressions (accessibility). */
    protected onFileChange(event: Event): void;
    protected deleteFile(index: any): void;
    protected deleteAllFiles(): void;
    private convertFileArrayToFileList;
    static ɵfac: i0.ɵɵFactoryDeclaration<DsfrUploadDndComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DsfrUploadDndComponent, "dsfr-ext-upload-dnd, dsfrx-upload-dnd", never, { "inline": { "alias": "inline"; "required": false; }; "buttonLabel": { "alias": "buttonLabel"; "required": false; }; "hideIllustration": { "alias": "hideIllustration"; "required": false; }; "formatAsked": { "alias": "formatAsked"; "required": false; }; "maxSizeInfo": { "alias": "maxSizeInfo"; "required": false; }; "sizeUnit": { "alias": "sizeUnit"; "required": false; }; "ariaInvalid": { "alias": "ariaInvalid"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "message": { "alias": "message"; "required": false; }; "messageSeverity": { "alias": "messageSeverity"; "required": false; }; "messagesGroupId": { "alias": "messagesGroupId"; "required": false; }; }, { "selectionChange": "selectionChange"; "fileBrowsingCancel": "fileBrowsingCancel"; }, never, never, true, never>;
}
