import { ElementRef } from "@angular/core";
import { ValueField } from "../value-field";
import { HttpClient } from "@angular/common/http";
import { IForm } from "../../../pathinterface";
import { TranslationService } from "../../../service/translation.service";
import * as i0 from "@angular/core";
export declare class FileUploadComponent {
    private http;
    field: FileUploadField;
    fileInputReference: ElementRef;
    dragActive: boolean;
    constructor(http: HttpClient);
    onDropFile(event: DragEvent): void;
    onDragOverFile(event: any): void;
    onDragLeave(): void;
    selectFile(event: any): void;
    uploadFile(files: FileList): void;
    private addNewPathFile;
    private resetFileUploadElement;
    private doUpload;
    static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadComponent, "path-file-upload", never, { "field": "field"; }, { "field": "field"; }, never, never>;
}
export declare class FileUploadField extends ValueField<PathFile[]> {
    private _url;
    private _multiple;
    private _acceptedFileTypes;
    private _fileUploadRequired;
    private _fileLimit;
    private _singleFileSizeLimit;
    private _allFilesSizeLimit;
    constructor(form: IForm, translationService: TranslationService);
    setValue(value: PathFile[]): void;
    sortValues(): void;
    get url(): string;
    set url(value: string);
    get multiple(): boolean;
    set multiple(value: boolean);
    get acceptedFileTypes(): string[];
    set acceptedFileTypes(value: string[]);
    get fileUploadRequired(): boolean;
    get fileLimit(): number;
    get singleFileSizeLimit(): number;
    get allFilesSizeLimit(): number;
    remove(index: number, key: PathFileKey): void;
    find(key: PathFileKey): PathFile;
    findCurrentUpload(name: string): PathFile;
    updateRequiredStatus(): void;
    checkFileLimit(newFilesLength: number): boolean;
    checkFileSize(files: FileList): boolean;
    getReadableFileSizeString(byteSize: number): string;
    download(key: PathFileKey): void;
    fromJson(modelFormField: any): void;
}
export declare class PathFile {
    active: boolean;
    uploadFinished: boolean;
    uploadSuccessful: boolean;
    uploadProgress: number;
    name: string;
    sizeString: string;
    size: number;
    key: PathFileKey;
}
export declare class PathFileKey {
    key: string;
    name: any;
    constructor(key: string, name: any);
    equals(otherKey: PathFileKey): boolean;
}
