import { ChangeDetectorRef, EventEmitter, OnInit, TemplateRef, Renderer2, NgZone, OnDestroy } from '@angular/core';
import { NgSelectComponent } from '@ng-select/ng-select';
import { Subject } from 'rxjs';
import { SelectValueAccessor } from './select-value-accessor';
import * as i0 from "@angular/core";
export declare class NcSelectComponent extends SelectValueAccessor<any> implements OnInit, OnDestroy {
    protected cdRef: ChangeDetectorRef;
    private renderer;
    private ngZone;
    private destroyed$;
    items: any[];
    clearable: boolean;
    multiple: boolean;
    loading: boolean;
    placeholder: string;
    bindLabel: string;
    bindValue: string;
    hideSelected: boolean;
    appendTo: string;
    clearSearchOnAdd: boolean;
    clearOnBackspace: boolean;
    markFirst: boolean;
    isOpen: boolean;
    closeOnSelect: boolean;
    maxSelectedItems: number;
    openOnEnter: boolean;
    selectOnTab: boolean;
    addTag: boolean | ((term: string) => any | Promise<any>);
    dropdownPosition: 'bottom' | 'top' | 'auto';
    groupBy: string | ((value: any) => any);
    groupValue: (key: string | object, children: any[]) => string | object;
    typeahead: Subject<string>;
    virtualScroll: boolean;
    bufferAmount: number;
    selectableGroup: boolean;
    selectableGroupAsModel: boolean;
    searchFn: (term: string, item: any) => boolean;
    labelForId: string;
    autoPanelWidth: boolean;
    set disabledBinding(value: boolean);
    set valueBinding(value: any);
    blurEvent: EventEmitter<any>;
    focusEvent: EventEmitter<any>;
    changeEvent: EventEmitter<any>;
    openEvent: EventEmitter<any>;
    closeEvent: EventEmitter<any>;
    searchEvent: EventEmitter<any>;
    clearEvent: EventEmitter<any>;
    addEvent: EventEmitter<any>;
    removeEvent: EventEmitter<any>;
    scrollEvent: EventEmitter<any>;
    scrollToEndEvent: EventEmitter<any>;
    optionTemplate: TemplateRef<any>;
    optgroupTemplate: TemplateRef<any>;
    labelTemplate: TemplateRef<any>;
    multiLabelTemplate: TemplateRef<any>;
    headerTemplate: TemplateRef<any>;
    footerTemplate: TemplateRef<any>;
    notFoundTemplate: TemplateRef<any>;
    typeToSearchTemplate: TemplateRef<any>;
    loadingTextTemplate: TemplateRef<any>;
    tagTemplate: TemplateRef<any>;
    ngSelect: NgSelectComponent;
    constructor(cdRef: ChangeDetectorRef, renderer: Renderer2, ngZone: NgZone);
    get searchTerm(): string;
    ngOnInit(): void;
    ngOnDestroy(): void;
    onOpen(event: any): void;
    onChange(value: any): void;
    onClose(): void;
    focus(): void;
    filter(term: string): void;
    private defaultValue;
    private getDropdownPanelMaxWidth;
    static ɵfac: i0.ɵɵFactoryDeclaration<NcSelectComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NcSelectComponent, "nc-select", never, { "items": "items"; "clearable": "clearable"; "multiple": "multiple"; "loading": "loading"; "placeholder": "placeholder"; "bindLabel": "bindLabel"; "bindValue": "bindValue"; "hideSelected": "hideSelected"; "appendTo": "appendTo"; "clearSearchOnAdd": "clearSearchOnAdd"; "clearOnBackspace": "clearOnBackspace"; "markFirst": "markFirst"; "isOpen": "isOpen"; "closeOnSelect": "closeOnSelect"; "maxSelectedItems": "maxSelectedItems"; "openOnEnter": "openOnEnter"; "selectOnTab": "selectOnTab"; "addTag": "addTag"; "dropdownPosition": "dropdownPosition"; "groupBy": "groupBy"; "groupValue": "groupValue"; "typeahead": "typeahead"; "virtualScroll": "virtualScroll"; "bufferAmount": "bufferAmount"; "selectableGroup": "selectableGroup"; "selectableGroupAsModel": "selectableGroupAsModel"; "searchFn": "searchFn"; "labelForId": "labelForId"; "autoPanelWidth": "autoPanelWidth"; "disabledBinding": "disabled"; "valueBinding": "value"; }, { "blurEvent": "blur"; "focusEvent": "focus"; "changeEvent": "change"; "openEvent": "open"; "closeEvent": "close"; "searchEvent": "search"; "clearEvent": "clear"; "addEvent": "add"; "removeEvent": "remove"; "scrollEvent": "scroll"; "scrollToEndEvent": "scrollToEnd"; }, ["optionTemplate", "optgroupTemplate", "labelTemplate", "multiLabelTemplate", "headerTemplate", "footerTemplate", "notFoundTemplate", "typeToSearchTemplate", "loadingTextTemplate", "tagTemplate"], never>;
}
