import { DataField } from '../../models/abstract-data-field';
import { Behavior } from '../../models/behavior';
import { Layout } from '../../models/layout';
import { ValidatorFn } from '@angular/forms';
import { FieldTypeResource } from '../../../task-content/model/field-type-resource';
import { Component } from '../../models/component';
import { Validation } from '../../models/validation';
import { Observable, Subject } from "rxjs";
import { UpdateOnStrategy } from "../../models/update-strategy";
export interface EnumerationFieldValue {
    key: string;
    value: string;
}
export declare enum EnumerationFieldValidation {
    WRONG_VALUE = "wrongValue",
    REQUIRED = "required"
}
export declare class EnumerationField extends DataField<string> {
    protected _choices: Array<EnumerationFieldValue>;
    protected readonly _fieldType: FieldTypeResource;
    protected REQUEST_DEBOUNCE_TIME: number;
    protected _updatedChoices: Subject<void>;
    constructor(stringId: string, title: string, value: string, _choices: Array<EnumerationFieldValue>, behavior: Behavior, placeholder?: string, description?: string, layout?: Layout, _fieldType?: FieldTypeResource, validations?: Array<Validation>, component?: Component, parentTaskId?: string);
    set choices(choices: Array<EnumerationFieldValue>);
    get choices(): Array<EnumerationFieldValue>;
    get fieldType(): FieldTypeResource;
    getUpdateOnStrategy(): UpdateOnStrategy;
    valueChanges(): Observable<string>;
    getTypedComponentType(): string;
    get updatedChoices(): Observable<void>;
    updateChoice(): void;
    destroy(): void;
    protected resolveFormControlValidators(): Array<ValidatorFn>;
    private checkKey;
}
