import { FocusMonitor } from '@angular/cdk/a11y';
import { ElementRef, OnDestroy, OnInit, EventEmitter, TemplateRef } from '@angular/core';
import { UntypedFormBuilder, UntypedFormGroup, ControlValueAccessor, NgControl } from '@angular/forms';
import { Subject } from 'rxjs';
import { MatDialog } from '@angular/material/dialog';
import { ComponentType } from '@angular/cdk/portal';
import { HttpService } from '../core/http.service';
import * as i0 from "@angular/core";
export declare class SearchableSelectorComponent implements ControlValueAccessor, OnInit, OnDestroy {
    private _focusMonitor;
    private http;
    private _elementRef;
    private dialog;
    ngControl: NgControl;
    searchInput: ElementRef;
    valueField: string;
    titleField: string;
    subtitleField: string;
    apiUrl: string;
    multiple: boolean;
    selectedValue: any;
    selectedValueChange: EventEmitter<any>;
    enableSearch: boolean;
    add: boolean;
    addConfig: any;
    edit: boolean;
    editConfig: any;
    sort: boolean;
    sortBy: string;
    searchField: string;
    itemComponent: ComponentType<unknown> | TemplateRef<unknown>;
    items: any[];
    apiDataProperty: string;
    cache: boolean;
    perPage: number;
    inDataSearch: boolean;
    panelWidth: string;
    selectionChange: EventEmitter<any>;
    itemsChange: EventEmitter<any>;
    focusSearchOnOpen: boolean;
    isLoading: boolean;
    onChange: any;
    onTouched: any;
    static nextId: number;
    selectorForm: UntypedFormGroup;
    stateChanges: Subject<void>;
    focused: boolean;
    controlType: string;
    id: string;
    describedBy: string;
    filters: any;
    cachedItems: any[];
    private subscriptions;
    get empty(): boolean;
    get shouldLabelFloat(): boolean;
    get required(): boolean;
    set required(value: boolean);
    private _required;
    get disabled(): boolean;
    set disabled(value: boolean);
    private _disabled;
    get value(): any;
    set value(data: any);
    constructor(formBuilder: UntypedFormBuilder, _focusMonitor: FocusMonitor, http: HttpService, _elementRef: ElementRef<HTMLElement>, dialog: MatDialog, ngControl: NgControl);
    openedChange(opened: boolean): void;
    get dataItems(): any[];
    ngOnInit(): void;
    fetchItemList(): void;
    setDescribedByIds(ids: string[]): void;
    onContainerClick(event: MouseEvent): void;
    writeValue(data: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState(isDisabled: boolean): void;
    getPropertyValue(ele: any, keyString: string): any;
    _handleInput(): void;
    get errorState(): boolean;
    static ngAcceptInputType_disabled: boolean | string | null | undefined;
    static ngAcceptInputType_required: boolean | string | null | undefined;
    onScroll(): void;
    reloadData(): void;
    search(event: any): void;
    filterItems(event: string): void;
    addItem(event: any): void;
    editItem(event: any): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchableSelectorComponent, [null, null, null, null, null, { optional: true; self: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchableSelectorComponent, "app-searchable-selector", never, { "valueField": { "alias": "valueField"; "required": false; }; "titleField": { "alias": "titleField"; "required": false; }; "subtitleField": { "alias": "subtitleField"; "required": false; }; "apiUrl": { "alias": "apiUrl"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "selectedValue": { "alias": "selectedValue"; "required": false; }; "enableSearch": { "alias": "enableSearch"; "required": false; }; "add": { "alias": "add"; "required": false; }; "addConfig": { "alias": "addConfig"; "required": false; }; "edit": { "alias": "edit"; "required": false; }; "editConfig": { "alias": "editConfig"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "sortBy": { "alias": "sortBy"; "required": false; }; "searchField": { "alias": "searchField"; "required": false; }; "itemComponent": { "alias": "itemComponent"; "required": false; }; "items": { "alias": "items"; "required": false; }; "apiDataProperty": { "alias": "apiDataProperty"; "required": false; }; "cache": { "alias": "cache"; "required": false; }; "perPage": { "alias": "perPage"; "required": false; }; "inDataSearch": { "alias": "inDataSearch"; "required": false; }; "panelWidth": { "alias": "panelWidth"; "required": false; }; "focusSearchOnOpen": { "alias": "focusSearchOnOpen"; "required": false; }; "required": { "alias": "required"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, { "selectedValueChange": "selectedValueChange"; "selectionChange": "selectionChange"; "itemsChange": "itemsChange"; }, never, never, false, never>;
}
