import { ComponentFactoryResolver, EventEmitter, OnDestroy, ViewContainerRef } from "@angular/core";
import { ScreenConfigAdapterComponent } from "@colijnit/corecomponents_v12";
import { TableName } from "../../../enum/table-name.enum";
import { FileType } from "@colijnit/mainapi/build/enum/file-type.enum";
import { OperationCallbackSimpleFunction } from "../../../interface/operation-callback-simple-function";
import { InternalParam } from "../../../enum/internal-param.enum";
import { FilesUploadConfigObjects } from "../../../enum/files-upload-config-objects";
import { TagCategory } from "../../../enum/tag-category.enum";
import { CoDocument } from "@colijnit/mainapi/build/model/co-document.bo";
import { SharedComponentsDictionaryService } from '../../../translation/shared-components-dictionary.service';
export declare abstract class BaseFileUploadComponent implements ScreenConfigAdapterComponent, OnDestroy {
    protected _dictionaryService: SharedComponentsDictionaryService;
    protected _container: ViewContainerRef;
    protected _factory: ComponentFactoryResolver;
    decimals: number;
    forceReadonly: boolean;
    maxLength: number;
    objectConfigName: string;
    redErrorBackground: boolean;
    required: boolean;
    set fileType(value: FileType);
    get fileType(): FileType;
    documents: CoDocument[];
    documentTable: TableName;
    set documentKey(value: string);
    get documentKey(): string;
    fullPageDrop: boolean;
    canAdd: boolean;
    dropMessage: string;
    addWithButton: boolean;
    canDelete: boolean;
    noDragDropOrdering: boolean;
    set readonly(value: boolean);
    get readonly(): boolean;
    askBeforeDelete: boolean;
    resizeImages: boolean;
    lockOperation: OperationCallbackSimpleFunction;
    unlockOperation: OperationCallbackSimpleFunction;
    beforeDeleteOperation: OperationCallbackSimpleFunction;
    afterDeleteOperation: OperationCallbackSimpleFunction;
    beforeCreateOperation: OperationCallbackSimpleFunction;
    afterCreateOperation: OperationCallbackSimpleFunction;
    beforeEditOperation: OperationCallbackSimpleFunction;
    dontAskBeforeDelete: boolean;
    noOwnDeleteOperation: boolean;
    private _fileType;
    set maxUploadSizeParam(value: InternalParam);
    useWithoutSettingProps: boolean;
    filesUploadConfigObjects: FilesUploadConfigObjects;
    medicalUserGroups: boolean;
    tagCategory: TagCategory;
    tagReferenceTable: TableName;
    displayReadWriteAccess: boolean;
    useCustomFileDropEvent: boolean;
    customFileDropEvent: EventEmitter<FileList>;
    readonly documentsAdded: EventEmitter<CoDocument[]>;
    readonly documentDeleted: EventEmitter<CoDocument>;
    readonly sortableListChanged: EventEmitter<CoDocument[]>;
    documentChangeEvent: EventEmitter<CoDocument>;
    popupOpenedStateChange: EventEmitter<boolean>;
    hidden: boolean;
    onDrop(event: DragEvent): void;
    onDragEnd(event: DragEvent): void;
    onDragOver(event: DragEvent): void;
    onDragEnter(event: DragEvent): void;
    onDragLeave(event: DragEvent): void;
    documentUnderEdit: CoDocument;
    acceptedUploadFormats: string;
    protected _maxUploadFileSize: number;
    private _dragEnterTarget;
    private _documentKey;
    private _dropZone;
    private _popup;
    private _docChangeSub;
    private _popupCloseSub;
    private _readonly;
    constructor(_dictionaryService: SharedComponentsDictionaryService, _container: ViewContainerRef, _factory: ComponentFactoryResolver);
    ngOnDestroy(): void;
    private _showDropzone;
    private _clearDropzone;
    handleDelete(file: CoDocument): Promise<boolean>;
    private _delete;
    handleSortingChange(docs: CoDocument[]): void;
    handleFileChange(event: any): Promise<void>;
    handleEditDocumentClick(docToEdit: CoDocument): Promise<void>;
    openPopup(): Promise<void>;
    openPopupToAddDocumentByUrl(): void;
    private _createDocumentToAddByUrl;
    private _createAndFillPopupInstance;
    protected convertFilesIntoCoDocuments(files: FileList): Promise<CoDocument[]>;
    filesPicked(files: FileList): Promise<void>;
    handleAcceptedFileTypesLoaded(value: FileType): void;
    private _getFileAsDocument;
    private _setInternalParamObj;
    private _lockDocument;
    private _unlockDocument;
    private _prepareFileRights;
}
