import { OnInit, EventEmitter } from '@angular/core';
import { MatTableDataSource } from '@angular/material/table';
import { CdkDragDrop } from '@angular/cdk/drag-drop';
import { ItemOptionStateMatcher } from '../error-state.matcher';
import { FormItem, FormItemOptionItem, FormItemWidget, FormItemValidation } from '../form-item';
import * as i0 from "@angular/core";
export declare class FormItemOptionsEditor extends FormItem {
    value: FormItemOptionItem[];
    hasOptions: boolean;
    useCustomOptionValues: boolean;
    allowCustomOptionValues: boolean;
    allowCustomAnswers: boolean;
    multiple: boolean;
    defaultValue: string | string[];
    fieldValidations: FormItemValidation;
}
export declare class FormItemOptionsEditorComponent implements FormItemWidget, OnInit {
    item: FormItemOptionsEditor;
    editable: boolean;
    changes: EventEmitter<FormItemOptionsEditor>;
    matcher: ItemOptionStateMatcher;
    dataSource: MatTableDataSource<FormItemOptionItem, import("@angular/material/paginator").MatPaginator>;
    columns: string[];
    useCustomValues: boolean;
    allowCustomValues: boolean;
    allowCustomAnswers: boolean;
    constructor();
    ngOnInit(): void;
    setColumns(): void;
    onUseCustomValuesChange(ev: any): void;
    onValueChange(value: any): void;
    isOptionSelected(option: any): boolean;
    setDefaultValue(option: any, checked: any): void;
    onOptionLabelChange(value: any, option: any): void;
    addOption(): void;
    removeOption(option: any): void;
    onListDropped(event: CdkDragDrop<FormItemOptionItem[]>): void;
    toggleExplanationField(option: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FormItemOptionsEditorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FormItemOptionsEditorComponent, "ammo-form-item-options-editor", never, { "item": { "alias": "item"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; }, { "changes": "changes"; }, never, never, false, never>;
}
