import { Observable } from 'rxjs';
import { Behavior } from '../../models/behavior';
import { Layout } from '../../models/layout';
import { FileUploadMIMEType } from '../../file-field/models/file-field';
import { DataField } from '../../models/abstract-data-field';
import { FileListFieldValue } from './file-list-field-value';
import { Validation } from '../../models/validation';
import { Component } from '../../models/component';
import { FormControl } from '@angular/forms';
import { ChangedFieldsMap } from '../../../event/services/interfaces/changed-fields-map';
export declare enum FileListFieldValidation {
    MAX_FILES = "maxFiles"
}
export declare class FileListField extends DataField<FileListFieldValue> {
    private _maxUploadSizeInBytes?;
    private _allowTypes?;
    /**
     * Used to forward the result of the upload file backend call to the task content
     */
    private _changedFields$;
    downloaded: Array<string>;
    set value(value: FileListFieldValue);
    get value(): FileListFieldValue;
    getTypedComponentType(): string;
    valueWithoutChange(value: FileListFieldValue): void;
    /**
     * Create new instance for file field with all his properties.
     *
     * Placeholder is a substitute for the value name if not set value.
     */
    constructor(stringId: string, title: string, behavior: Behavior, value?: FileListFieldValue, placeholder?: string, description?: string, layout?: Layout, validations?: Array<Validation>, _maxUploadSizeInBytes?: number, _allowTypes?: string | FileUploadMIMEType | Array<FileUploadMIMEType>, component?: Component, parentTaskId?: string);
    get maxUploadSizeInBytes(): number;
    get allowTypes(): string;
    get changedFields$(): Observable<ChangedFieldsMap>;
    emitChangedFields(change: ChangedFieldsMap): void;
    /**
     * We assume that files are always given in the same order.
     */
    protected valueEquality(a: FileListFieldValue, b: FileListFieldValue): boolean;
    registerFormControl(formControl: FormControl): void;
    protected updateFormControlState(formControl: FormControl): void;
}
