import { DataField } from '../../models/abstract-data-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 { Validation } from '../../models/validation';
import { UpdateOnStrategy } from "../../models/update-strategy";
import { Observable, Subject } from 'rxjs';
export interface MultichoiceFieldValue {
    key: string;
    value: string;
}
export declare class MultichoiceField extends DataField<Array<string>> {
    private _choices;
    private readonly _fieldType;
    protected _updatedChoices: Subject<void>;
    constructor(stringId: string, title: string, values: Array<string>, _choices: Array<MultichoiceFieldValue>, behavior: Behavior, placeholder?: string, description?: string, layout?: Layout, _fieldType?: FieldTypeResource, validations?: Array<Validation>, component?: Component, parentTaskId?: string);
    set choices(choices: Array<MultichoiceFieldValue>);
    get choices(): Array<MultichoiceFieldValue>;
    get fieldType(): FieldTypeResource;
    get updatedChoices(): Observable<void>;
    updateChoice(): void;
    getUpdateOnStrategy(): UpdateOnStrategy;
    getTypedComponentType(): string;
    protected valueEquality(a: Array<string>, b: Array<string>): boolean;
}
