import { DoCheck, ElementRef, OnInit, EventEmitter, OnDestroy } from '@angular/core';
import { NgControl } from '@angular/forms';
import { EclFileUpload } from '../../model/ecl-file-upload.model';
import { EclBaseEvent } from '../../model/ecl-base.event';
import { ECLBaseDirective } from '../ecl-base.directive';
import { TranslateService } from '@ngx-translate/core';
import * as i0 from "@angular/core";
export declare class EclFileUploadFileSelectedEvent extends EclBaseEvent {
    files: Array<EclFileUpload>;
    constructor(files: Array<EclFileUpload>);
}
export declare class EclFileUploadDirective extends ECLBaseDirective implements OnInit, OnDestroy, DoCheck {
    protected ngControl: NgControl;
    private el;
    private translate;
    variant: string;
    isInvalid: boolean;
    id: string;
    disabled: boolean;
    multiple: boolean;
    filesSelected: EventEmitter<EclFileUploadFileSelectedEvent>;
    type: string;
    private fileListEl;
    private files;
    private buttonEl;
    private labelEl;
    private destroy$;
    constructor(ngControl: NgControl, el: ElementRef, translate: TranslateService);
    get cssClasses(): string;
    get invalidState(): boolean;
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngDoCheck(): void;
    onClick(evt: Event): void;
    onFilesSelected(evt: Event): void;
    private handleTranslations;
    private geti18nUploadButtonLabelKey;
    private updateListItemsDOM;
    private createDOMStructure;
    private getHostDOMElement;
    private createLabelDOMElement;
    private createFileListDOMElement;
    private createFileListItemDOMElement;
    private getFileModels;
    private getFilenameExtension;
    private formatBytes;
    static ɵfac: i0.ɵɵFactoryDeclaration<EclFileUploadDirective, [{ optional: true; self: true; }, null, null]>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<EclFileUploadDirective, "[eclFileUpload]", never, { "variant": "variant"; "isInvalid": "isInvalid"; "id": "id"; "disabled": "disabled"; "multiple": "multiple"; }, { "filesSelected": "filesSelected"; }, never>;
}
//# sourceMappingURL=ecl-file-upload.directive.d.ts.map