import { EnumerationField, EnumerationFieldValue } from './enumeration-field';
import { Behavior } from '../../models/behavior';
import { Layout } from '../../models/layout';
import { FieldTypeResource } from '../../../task-content/model/field-type-resource';
import { Component } from '../../models/component';
import { ValidatorFn } from '@angular/forms';
import { Observable, Subject } from 'rxjs';
import { LoadingEmitter } from '../../../utility/loading-emitter';
import { Validation } from '../../models/validation';
export declare class DynamicEnumerationField extends EnumerationField {
    protected _choices: Array<EnumerationFieldValue>;
    protected readonly _fieldType: FieldTypeResource;
    protected REQUEST_DEBOUNCE_TIME: number;
    protected _choicesChange$: Subject<void>;
    protected _loading: LoadingEmitter;
    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>;
    set loading(bool: boolean);
    get loading(): boolean;
    get choicesChange$(): Observable<void>;
    valueChanges(): Observable<string>;
    protected resolveFormControlValidators(): Array<ValidatorFn>;
}
