import { AfterViewInit, OnDestroy, OnInit } from "@angular/core";
import { DataFieldPortalData } from "../../models/data-field-portal-data-injection-token";
import { FileListField } from "../models/file-list-field";
import { TaskResourceService } from "../../../resources/engine-endpoint/task-resource.service";
import { LoggerService } from "../../../logger/services/logger.service";
import { SnackBarService } from "../../../snack-bar/services/snack-bar.service";
import { TranslateService } from "@ngx-translate/core";
import { EventService } from "../../../event/services/event.service";
import { AbstractFileFieldDefaultComponent } from '../../models/abstract-file-field-default-component';
import { FrontActionService } from "../../../actions/services/front-action.service";
import * as i0 from "@angular/core";
export interface FilesState {
    progress: number;
    uploading: boolean;
    downloading: boolean;
    completed: boolean;
    error: boolean;
}
export declare abstract class AbstractFileListDefaultFieldComponent extends AbstractFileFieldDefaultComponent<FileListField> implements OnInit, AfterViewInit, OnDestroy {
    protected _taskResourceService: TaskResourceService;
    protected _log: LoggerService;
    protected _snackbar: SnackBarService;
    protected _translate: TranslateService;
    protected _eventService: EventService;
    protected _frontActionService: FrontActionService;
    uploadedFiles: Array<string>;
    state: FilesState;
    private valueChange$;
    /**
     * Values from file list field validation (eg. maxFiles 5)
     * maxFilesNumber - maximum uploadable files
     * maxFilesMessage - error message if number of files is exceeded
     */
    protected maxFilesNumber: number;
    protected maxFilesMessage: string;
    protected constructor(_taskResourceService: TaskResourceService, _log: LoggerService, _snackbar: SnackBarService, _translate: TranslateService, _eventService: EventService, _frontActionService: FrontActionService, dataFieldPortalData: DataFieldPortalData<FileListField>);
    ngOnInit(): void;
    /**
     * Set file picker and image elements to [FileFieldService]{@link FileFieldService}.
     *
     * Initialize file image.
     */
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    chooseFile(): void;
    /**
     * Call after click on file field.
     *
     * If file field has no file uploaded
     * [FilesUploadComponent]{@link AbstractFilesUploadComponent} via [SideMenu]{@link SideMenuService} opens.
     *
     * Otherwise opens a file picker from which the user can select files.
     */
    upload(): void;
    download(fileName: string): void;
    protected downloadViaAnchor(blob: Blob, fileName: string): void;
    deleteFile(fileName: string): void;
    protected get defaultState(): FilesState;
    /**
     * Construct display name.
     */
    constructDisplayName(): string;
    protected parseResponse(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractFileListDefaultFieldComponent, [null, null, null, null, null, null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AbstractFileListDefaultFieldComponent, "ncc-abstract-file-list-default-field", never, {}, {}, never, never, false, never>;
}
