import * as _angular_core from '@angular/core';
import { ControlValueAccessor, Validators, NgControl } from '@angular/forms';
import { HttpContext, HttpClient } from '@angular/common/http';

declare class UploadField implements ControlValueAccessor {
    readonly label: _angular_core.InputSignal<string | undefined>;
    readonly title: _angular_core.InputSignal<string>;
    readonly description: _angular_core.InputSignal<string>;
    readonly endPoint: _angular_core.InputSignal<string>;
    readonly size: _angular_core.InputSignal<"normal" | "large" | "xlarge" | undefined>;
    readonly userImgClass: _angular_core.InputSignal<string | undefined>;
    readonly shape: _angular_core.InputSignal<"circle" | "field" | "card">;
    readonly accept: _angular_core.InputSignal<string | undefined>;
    readonly isDragging: _angular_core.ModelSignal<boolean>;
    readonly fileSizeLimit: _angular_core.InputSignal<number | undefined>;
    readonly: _angular_core.InputSignal<boolean>;
    readonly context: _angular_core.InputSignal<HttpContext | undefined>;
    onChange: _angular_core.OutputEmitterRef<any>;
    requiredValidator: typeof Validators.required;
    value: _angular_core.WritableSignal<any>;
    disabled: _angular_core.WritableSignal<boolean>;
    uploadProgress: _angular_core.WritableSignal<number>;
    httpClient: HttpClient;
    loading: _angular_core.WritableSignal<boolean>;
    onTouched: () => void;
    onModelChange: (value: any[]) => void;
    ngControl: NgControl;
    imgPath: _angular_core.Signal<string | undefined>;
    constructor();
    writeValue(value: any[]): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(disabled: boolean): void;
    onAdd(item: any): void;
    onDelete(): void;
    onFileSelect(event: any): void;
    prepareImage(files: FileList): void;
    uploadFile(file: File): void;
    handleUploadDone(file: any): void;
    downloadFile(value: any): void;
    onDragOver(event: DragEvent): void;
    onDragLeave(event: DragEvent): void;
    onDrop(event: DragEvent): void;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<UploadField, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<UploadField, "mt-upload-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "endPoint": { "alias": "endPoint"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "userImgClass": { "alias": "userImgClass"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "isDragging": { "alias": "isDragging"; "required": false; "isSignal": true; }; "fileSizeLimit": { "alias": "fileSizeLimit"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "context": { "alias": "context"; "required": false; "isSignal": true; }; }, { "isDragging": "isDraggingChange"; "onChange": "onChange"; }, never, never, true, never>;
}

export { UploadField };
