import { EventEmitter } from '../../../stencil-public-runtime';
import { AjaxFn, ClassNames, FuseOptions, IChoicesProps, IChoicesMethods, ItemFilterFn, NoResultsTextFn, NoChoicesTextFn, AddItemTextFn, MaxItemTextFn, SortFn, OnInit, OnCreateTemplates, UniqueItemText, ValueCompareFunction, CustomAddItemText } from './interfaces';
export declare class Choices implements IChoicesProps, IChoicesMethods {
    value: string;
    name: string;
    items: Array<any>;
    choices: Array<any> | string;
    renderChoiceLimit: number;
    maxItemCount: number;
    addItems: boolean;
    removeItems: boolean;
    removeItemButton: boolean;
    editItems: boolean;
    duplicateItemsAllowed: boolean;
    delimiter: string;
    paste: boolean;
    showSearch: boolean;
    searchChoices: boolean;
    searchFields: Array<string> | string;
    searchFloor: number;
    searchResultLimit: number;
    position: 'auto' | 'top' | 'bottom';
    resetScrollPosition: boolean;
    shouldSort: boolean;
    shouldSortItems: boolean;
    sorter: SortFn;
    placeholder: boolean | string;
    searchPlaceholderValue: string;
    prependValue: string;
    appendValue: string;
    renderSelectedChoices: 'always' | 'auto';
    loadingText: string;
    noResultsText: string | NoResultsTextFn;
    noChoicesText: string | NoChoicesTextFn;
    itemSelectText: '';
    addItemText: string | AddItemTextFn;
    maxItemText: string | MaxItemTextFn;
    uniqueItemText: UniqueItemText;
    classNames: ClassNames;
    fuseOptions: FuseOptions;
    addItemFilter: string | RegExp | ItemFilterFn;
    customAddItemText: CustomAddItemText;
    callbackOnInit: OnInit;
    callbackOnCreateTemplates: OnCreateTemplates;
    valueComparer: ValueCompareFunction;
    error: boolean;
    label: string;
    caption: string;
    disabled: boolean;
    required: boolean;
    placeholderValue: string;
    ifxSelect: EventEmitter<CustomEvent>;
    ifxInput: EventEmitter<CustomEvent>;
    options: any[] | string;
    size: string;
    selectedOption: any | null;
    optionIsSelected: boolean;
    showClearButton: boolean;
    private resizeObserver;
    private previousOptions;
    private readonly root;
    private choice;
    private element;
    watchDisabled(newValue: boolean): void;
    clearSelection(): Promise<void>;
    clearSelectField(): void;
    handleChange(): Promise<void>;
    highlightItem(item: HTMLElement, runEvent?: boolean): Promise<this>;
    unhighlightItem(item: HTMLElement): Promise<this>;
    highlightAll(): Promise<this>;
    unhighlightAll(): Promise<this>;
    removeActiveItemsByValue(value: string): Promise<this>;
    removeActiveItems(excludedId?: number): Promise<this>;
    removeHighlightedItems(runEvent?: boolean): Promise<this>;
    showDropdown(focusInput?: boolean): Promise<this>;
    hideDropdown(blurInput?: boolean): Promise<this>;
    getValue(valueOnly?: boolean): Promise<string | Array<string>>;
    setValue(args: Array<any>): Promise<this>;
    setChoiceByValue(value: string | Array<string>): Promise<this>;
    setChoices(choices: any[] | string, value: string, label: string, replaceChoices?: boolean): Promise<this>;
    clearChoices(): Promise<this>;
    clearStore(): Promise<this>;
    clearInput(): Promise<this>;
    ajax(fn: AjaxFn): Promise<this>;
    handleDeleteIcon(): Promise<void>;
    handleCloseButton(): void;
    protected componentWillLoad(): void;
    protected componentWillUpdate(): void;
    isEqual(a: any, b: any[]): boolean;
    addResizeObserver(): void;
    protected componentDidLoad(): Promise<void>;
    protected componentDidUpdate(): void;
    protected disconnectedCallback(): void;
    private handleWrapperClick;
    protected render(): any;
    toggleDropdown(): void;
    closeDropdown(): void;
    handleOutsideClick(event: MouseEvent): void;
    handleKeyDown(event: KeyboardEvent): void;
    getSizeClass(): "small-select" | "medium-select";
    private init;
    private addEventListenersToHandleCustomFocusAndActiveState;
    private addSearchEventListener;
    private destroy;
    private getPreSelected;
    private setPreSelected;
    private createSelectOptions;
}
