import { EventEmitter } from '@angular/core';
import { AbstractControl, ControlValueAccessor, FormBuilder, FormGroup, ValidationErrors, Validator } from '@angular/forms';
import { IResultList } from '@c8y/client';
import { Observable } from 'rxjs';
import { ForOfFilterPipe, ListItemDragHandleComponent } from '@c8y/ngx-components';
import { DatapointAction, DatapointAttributesFormConfig, KPIDetails, ManagedObjectKPI } from '../datapoint-selection.model';
import * as i0 from "@angular/core";
export declare const AddButtonTypes: {
    readonly none: "none";
    readonly addRemove: "add-remove";
    readonly select: "select";
};
export type AddButtonType = (typeof AddButtonTypes)[keyof typeof AddButtonTypes];
export declare class DatapointSelectorListItemComponent implements ControlValueAccessor, Validator {
    private formBuilder;
    formGroup: FormGroup;
    defaultFormOptions: Partial<DatapointAttributesFormConfig>;
    isSelected: boolean;
    isCollapsed: boolean;
    addButtonType: AddButtonType;
    editable: boolean;
    showActiveToggle: boolean;
    activeToggleDisabled: boolean;
    showOptions: boolean;
    datapointLibraryEntries: Observable<IResultList<ManagedObjectKPI>>;
    actions: DatapointAction[];
    optionToRemove: boolean;
    hasUnlinkTemplateOption: boolean;
    added: EventEmitter<KPIDetails>;
    removed: EventEmitter<KPIDetails>;
    colorPickerDisabled: boolean;
    disableTypeaheadIfSelected: boolean;
    highlightText: string;
    dragHandle: ListItemDragHandleComponent;
    pattern: string;
    filterPipe: ForOfFilterPipe<ManagedObjectKPI>;
    isValid$: Observable<boolean>;
    errorMessage: string;
    AddButtonTypes: {
        readonly none: "none";
        readonly addRemove: "add-remove";
        readonly select: "select";
    };
    constructor(formBuilder: FormBuilder);
    validate(_control: AbstractControl): ValidationErrors;
    writeValue(obj: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    collapse(): void;
    addOrRemoveItem(): void;
    remove(): void;
    setPipe(filterStr: string): void;
    unlinkDatapointTemplate(): void;
    dataPointTemplateSelected(template: ManagedObjectKPI): void;
    private resetUnusedProperties;
    private filterDatapointLabel;
    private transformFormValue;
    static ɵfac: i0.ɵɵFactoryDeclaration<DatapointSelectorListItemComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DatapointSelectorListItemComponent, "c8y-datapoint-selector-list-item", never, { "defaultFormOptions": { "alias": "defaultFormOptions"; "required": false; }; "isSelected": { "alias": "isSelected"; "required": false; }; "isCollapsed": { "alias": "isCollapsed"; "required": false; }; "addButtonType": { "alias": "addButtonType"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; "showActiveToggle": { "alias": "showActiveToggle"; "required": false; }; "activeToggleDisabled": { "alias": "activeToggleDisabled"; "required": false; }; "showOptions": { "alias": "showOptions"; "required": false; }; "datapointLibraryEntries": { "alias": "datapointLibraryEntries"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "optionToRemove": { "alias": "optionToRemove"; "required": false; }; "hasUnlinkTemplateOption": { "alias": "hasUnlinkTemplateOption"; "required": false; }; "colorPickerDisabled": { "alias": "colorPickerDisabled"; "required": false; }; "disableTypeaheadIfSelected": { "alias": "disableTypeaheadIfSelected"; "required": false; }; "highlightText": { "alias": "highlightText"; "required": false; }; }, { "added": "added"; "removed": "removed"; }, ["dragHandle"], ["c8y-li-drag-handle"], false, never>;
}
//# sourceMappingURL=datapoint-selector-list-item.component.d.ts.map