import { ElementRef, EventEmitter, Injector, OnDestroy, OnInit } from '@angular/core';
import { AbstractControl, ControlValueAccessor, NgControl } from '@angular/forms';
import { HttpClient } from '@angular/common/http';
import { FileSaverService } from "ngx-filesaver";
import { UploadModel } from '../../models/components/upload.model';
import * as i0 from "@angular/core";
export declare class DeleteFileEventModel {
    ngControl: NgControl | undefined;
    file: UploadModel | undefined;
}
export declare class CvaUploadFileComponent implements ControlValueAccessor, OnInit, OnDestroy {
    private http;
    private injector;
    private fileSaverService;
    private ngControl;
    constructor(http: HttpClient, injector: Injector, fileSaverService: FileSaverService, ngControl: NgControl);
    fileUpload?: ElementRef<any>;
    files: UploadModel[];
    maxSize: number | null;
    height: number | null;
    width: number | null;
    isSquareImg: boolean;
    isRectangleImg: boolean;
    accept: string[] | null;
    label: string;
    placeholder: string;
    required: boolean;
    disabled: boolean;
    percentOfLabelOutside: number;
    onFileChange: EventEmitter<any>;
    onFileDelete: EventEmitter<DeleteFileEventModel>;
    sizeError: string | null;
    widthError: boolean;
    heightError: boolean;
    isSquareError: boolean;
    isRectangleError: boolean;
    typeError: string | null;
    fileType: string;
    fileName: string;
    imgRef: HTMLImageElement | null;
    default$?: string;
    private downloadSub?;
    set value(value: any);
    formControl: AbstractControl | null | undefined;
    set defaultUrl(fileInfo: {
        url: string;
        name: string;
        type: string;
    });
    ngOnInit(): void;
    callValidator(): void;
    isImageType(): boolean;
    getSrcImg(): any;
    propagateChange: (_: any) => void;
    writeValue(obj: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(): void;
    onClick(): void;
    convertToUploadModel(fileList: FileList): void;
    isContainFileName(name: string): boolean;
    onFileChangeAction(event: any): void;
    onFileDroppedAction(fileList: FileList): void;
    validFile(fileList: FileList): boolean;
    removeFiles(event: any, control?: any): void;
    onLoad(img: HTMLImageElement, event: any): void;
    previewFiles(event: any, downloadId: any): void;
    downloadFile(): void;
    getRequiredErr(): boolean;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CvaUploadFileComponent, [null, null, null, { optional: true; self: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CvaUploadFileComponent, "cva-upload-file", never, { "files": { "alias": "files"; "required": false; }; "maxSize": { "alias": "maxSize"; "required": false; }; "height": { "alias": "height"; "required": false; }; "width": { "alias": "width"; "required": false; }; "isSquareImg": { "alias": "isSquareImg"; "required": false; }; "isRectangleImg": { "alias": "isRectangleImg"; "required": false; }; "accept": { "alias": "accept"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "percentOfLabelOutside": { "alias": "percentOfLabelOutside"; "required": false; }; "value": { "alias": "value"; "required": false; }; "defaultUrl": { "alias": "defaultUrl"; "required": false; }; }, { "onFileChange": "onFileChange"; "onFileDelete": "onFileDelete"; }, never, never, false, never>;
}
