import { AfterContentInit, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
import { DomSanitizer } from '@angular/platform-browser';
import { TranslateService } from '@ngx-translate/core';
import { FileUploadService } from './file-upload.service';
import { FileDto } from './models/file-dto';
import { UploadError } from './models/uploadError';
import { FileUploadPermissions } from './models/file-upload-permissions';
import * as i0 from "@angular/core";
export declare class FileUploadComponent implements OnInit, OnDestroy, AfterContentInit {
    private readonly sanitizer;
    private readonly fileUploadService;
    private readonly translate;
    static nextId: number;
    ADD_PERMISSION: FileUploadPermissions;
    READ_PERMISSION: FileUploadPermissions;
    REMOVE_PERMISSION: FileUploadPermissions;
    private readonly inputUpload;
    private readonly anchor;
    id: string;
    chooseLabel?: string;
    removeLabel?: string;
    cancelLabel?: string;
    successTooltip?: string;
    multiple?: boolean;
    accept?: string;
    supportedExtensions: string[];
    ariaLabelFileName?: string;
    maxFileSize?: number;
    maxCombinedFileSize?: number;
    fileLimit?: number;
    ariaLabelProgress?: string;
    ariaLabelSuccess?: string;
    ariaLabelError?: string;
    ariaLabelRemove?: string;
    formGroup?: FormControl;
    disabled: boolean;
    showFileUploadDate: boolean;
    permissions: FileUploadPermissions[];
    set files(files: FileDto[]);
    uploadHandler: EventEmitter<{
        files: FileDto[];
    }>;
    removeFile: EventEmitter<{
        file: File;
    }>;
    cancelUpload: EventEmitter<number>;
    downloadFile: EventEmitter<{
        index: number;
        anchor: ElementRef;
    }>;
    validateErrors: EventEmitter<UploadError>;
    private _files;
    private readonly ngUsubscribe;
    isSmallDevice: boolean;
    inputValue: string;
    modifiedDate?: string;
    constructor(sanitizer: DomSanitizer, fileUploadService: FileUploadService, translate: TranslateService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngAfterContentInit(): void;
    onResize(): void;
    _onInputFileSelect($event: Event): void;
    onFileSelect(files: FileDto[]): void;
    onRemoveFile(file: FileDto): void;
    onCancelUpload(index: number): void;
    onDowloadFile(index: number): void;
    get files(): FileDto[];
    formatFileSize(size: number): string;
    private update;
    private isFileLimitExceeded;
    private isFileCombinedSizeExceeded;
    private isFileSizeExceeded;
    private isUnsupportedFileExtension;
    private clearFileInput;
    private getUploadDate;
    private setModifiedDate;
    static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadComponent, "s-file-upload", never, { "id": { "alias": "id"; "required": false; }; "chooseLabel": { "alias": "chooseLabel"; "required": false; }; "removeLabel": { "alias": "removeLabel"; "required": false; }; "cancelLabel": { "alias": "cancelLabel"; "required": false; }; "successTooltip": { "alias": "successTooltip"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "supportedExtensions": { "alias": "supportedExtensions"; "required": false; }; "ariaLabelFileName": { "alias": "ariaLabelFileName"; "required": false; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; }; "maxCombinedFileSize": { "alias": "maxCombinedFileSize"; "required": false; }; "fileLimit": { "alias": "fileLimit"; "required": false; }; "ariaLabelProgress": { "alias": "ariaLabelProgress"; "required": false; }; "ariaLabelSuccess": { "alias": "ariaLabelSuccess"; "required": false; }; "ariaLabelError": { "alias": "ariaLabelError"; "required": false; }; "ariaLabelRemove": { "alias": "ariaLabelRemove"; "required": false; }; "formGroup": { "alias": "formGroup"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "showFileUploadDate": { "alias": "showFileUploadDate"; "required": false; }; "permissions": { "alias": "permissions"; "required": false; }; "files": { "alias": "files"; "required": false; }; }, { "uploadHandler": "uploadHandler"; "removeFile": "removeFile"; "cancelUpload": "cancelUpload"; "downloadFile": "downloadFile"; "validateErrors": "validateErrors"; }, never, never, false, never>;
}
