import * as _angular_core from '@angular/core';
import { OnInit } from '@angular/core';
import { ControlValueAccessor, Validators, NgControl } from '@angular/forms';
import { PickList } from 'primeng/picklist';
import { isInvalid } from '@masterteam/components';

declare class PickListField implements ControlValueAccessor, OnInit {
    readonly label: _angular_core.InputSignal<string | undefined>;
    readonly class: _angular_core.InputSignal<string>;
    readonly readonly: _angular_core.InputSignal<boolean>;
    readonly options: _angular_core.InputSignal<any[]>;
    readonly optionLabel: _angular_core.InputSignal<string>;
    readonly optionValue: _angular_core.InputSignal<string>;
    readonly sourceHeader: _angular_core.InputSignal<string>;
    readonly targetHeader: _angular_core.InputSignal<string>;
    readonly showSourceControls: _angular_core.InputSignal<boolean>;
    readonly showTargetControls: _angular_core.InputSignal<boolean>;
    readonly showSourceFilter: _angular_core.InputSignal<boolean>;
    readonly showTargetFilter: _angular_core.InputSignal<boolean>;
    readonly filterBy: _angular_core.InputSignal<string | undefined>;
    readonly dataKey: _angular_core.InputSignal<string | undefined>;
    readonly filterLocale: _angular_core.InputSignal<string | undefined>;
    readonly filterMatchMode: _angular_core.InputSignal<string>;
    readonly dragdrop: _angular_core.InputSignal<boolean>;
    readonly responsive: _angular_core.InputSignal<boolean>;
    readonly required: _angular_core.InputSignal<boolean>;
    styleClass: string;
    requiredValidator: typeof Validators.required;
    value: _angular_core.WritableSignal<any[]>;
    targetItems: _angular_core.WritableSignal<any[]>;
    sourceItems: _angular_core.WritableSignal<any[]>;
    disabled: _angular_core.WritableSignal<boolean>;
    private onTouched;
    private onModelChange;
    ngControl: NgControl;
    isInvalid: typeof isInvalid;
    private hasInitialized;
    pickList?: PickList;
    constructor();
    ngOnInit(): void;
    writeValue(value: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(disabled: boolean): void;
    onInteractiveChange(): void;
    handleBlur(): void;
    displayLabel(item: any): string;
    private syncLists;
    private syncFromPickList;
    private normalizeValueToOptions;
    private extractValues;
    private updateSourceFromTarget;
    private getIdentifier;
    private findOption;
    static ɵfac: _angular_core.ɵɵFactoryDeclaration<PickListField, never>;
    static ɵcmp: _angular_core.ɵɵComponentDeclaration<PickListField, "mt-pick-list-field", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "optionLabel": { "alias": "optionLabel"; "required": false; "isSignal": true; }; "optionValue": { "alias": "optionValue"; "required": false; "isSignal": true; }; "sourceHeader": { "alias": "sourceHeader"; "required": false; "isSignal": true; }; "targetHeader": { "alias": "targetHeader"; "required": false; "isSignal": true; }; "showSourceControls": { "alias": "showSourceControls"; "required": false; "isSignal": true; }; "showTargetControls": { "alias": "showTargetControls"; "required": false; "isSignal": true; }; "showSourceFilter": { "alias": "showSourceFilter"; "required": false; "isSignal": true; }; "showTargetFilter": { "alias": "showTargetFilter"; "required": false; "isSignal": true; }; "filterBy": { "alias": "filterBy"; "required": false; "isSignal": true; }; "dataKey": { "alias": "dataKey"; "required": false; "isSignal": true; }; "filterLocale": { "alias": "filterLocale"; "required": false; "isSignal": true; }; "filterMatchMode": { "alias": "filterMatchMode"; "required": false; "isSignal": true; }; "dragdrop": { "alias": "dragdrop"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
}

export { PickListField };
