import { DoCheck, ElementRef, EventEmitter, IterableDiffers, OnDestroy, OnInit } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { Form, InfiniteScroll, Item, ModalController, Platform } from 'ionic-angular';
import { IonicSelectablePageComponent } from './ionic-selectable-page.component';
export declare class IonicSelectableComponent implements ControlValueAccessor, OnInit, OnDestroy, DoCheck {
    private _modalController;
    private ionForm;
    private _platform;
    private ionItem;
    private _iterableDiffers;
    private element;
    private _cssClass;
    _isIos: boolean;
    _isMD: boolean;
    private readonly _isMultipleCssClass;
    private readonly _hasValueCssClass;
    private readonly _hasPlaceholderCssClass;
    private _isOnSearchEnabled;
    private _isEnabled;
    private _isOpened;
    private _valueItems;
    private _value;
    private _modal;
    private _itemsDiffer;
    private _hasObjects;
    private _canClear;
    private _isMultiple;
    private onItemsChange;
    readonly _shouldStoreItemValue: boolean;
    _searchText: string;
    _hasSearchText: boolean;
    _groups: any[];
    _itemsToConfirm: any[];
    _selectedItems: any[];
    _selectPageComponent: IonicSelectablePageComponent;
    _filteredGroups: any[];
    _isSearching: boolean;
    _labelText: string;
    _hasPlaceholder: boolean;
    _infiniteScroll: InfiniteScroll;
    _footerButtonsCount: number;
    /**
     * Text that the user has typed in Searchbar.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#searchtext).
     *
     * @readonly
     * @default ''
     * @memberof IonicSelectableComponent
     */
    readonly searchText: string;
    /**
     * Determines whether search is running.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#issearching).
     *
     * @default false
     * @readonly
     * @memberof IonicSelectableComponent
     */
    readonly isSearching: boolean;
    /**
     * Determines whether user has typed anything in Searchbar.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#hassearchtext).
     *
     * @default false
     * @readonly
     * @memberof IonicSelectableComponent
     */
    readonly hasSearchText: boolean;
    value: any;
    /**
     * A list of items.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#items).
     *
     * @default []
     * @memberof IonicSelectableComponent
     */
    items: any[];
    itemsChange: EventEmitter<any>;
    /**
     * Determines whether the component is enabled.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#isenabled).
     *
     * @default true
     * @memberof IonicSelectableComponent
     */
    isEnabled: boolean;
    /**
     * Determines whether Select page is opened.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#isopened).
     *
     * @default false
     * @readonly
     * @memberof IonicSelectableComponent
     */
    readonly isOpened: boolean;
    /**
     * Determines whether OK button is enabled.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#isokbuttonenabled).
     *
     * @default true
     * @memberof IonicSelectableComponent
     */
    isOkButtonEnabled: boolean;
    /**
     * Item property to use as a unique identifier, e.g, `'id'`.
     * **Note**: `items` should be an object array.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#itemvaluefield).
     *
     * @default null
     * @memberof IonicSelectableComponent
     */
    itemValueField: string;
    /**
     * Item property to display, e.g, `'name'`.
     * **Note**: `items` should be an object array.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#itemtextfield).
     *
     * @default false
     * @memberof IonicSelectableComponent
     */
    itemTextField: string;
    /**
     * Determines whether to show Searchbar.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#cansearch).
     *
     * @default false
     * @memberof IonicSelectableComponent
     */
    canSearch: boolean;
    /**
     * Determines whether `onSearch` event is enabled.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#isonsearchenabled).
     *
     * @default true
     * @memberof IonicSelectableComponent
     */
    isOnSearchEnabled: boolean;
    /**
     * Determines whether to show Clear button.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#canclear).
     *
     * @default false
     * @memberof IonicSelectableComponent
     */
    canClear: boolean;
    /**
     * Determines whether Ionic [InfiniteScroll](https://ionicframework.com/docs/api/components/infinite-scroll/InfiniteScroll/) is enabled.
     * **Note**: Infinite scroll cannot be used together with virtual scroll.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#hasinfinitescroll).
     *
     * @default false
     * @memberof IonicSelectableComponent
     */
    hasInfiniteScroll: boolean;
    /**
     * Determines whether Ionic [VirtualScroll](https://ionicframework.com/docs/api/components/virtual-scroll/VirtualScroll/) is enabled.
     * **Note**: Virtual scroll cannot be used together with infinite scroll.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#hasvirtualscroll).
     *
     * @default false
     * @memberof IonicSelectableComponent
     */
    hasVirtualScroll: boolean;
    /**
     * See Ionic VirtualScroll [approxItemHeight](https://ionicframework.com/docs/api/components/virtual-scroll/VirtualScroll/).
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#virtualscrollapproxitemheight).
     *
     * @default '40px'
     * @memberof IonicSelectableComponent
     */
    virtualScrollApproxItemHeight: string;
    /**
     * See Ionic VirtualScroll [approxItemWidth](https://ionicframework.com/docs/api/components/virtual-scroll/VirtualScroll/).
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#virtualscrollapproxitemwidth).
     *
     * @default '100%'
     * @memberof IonicSelectableComponent
     */
    virtualScrollApproxItemWidth: string;
    /**
     * See Ionic VirtualScroll [bufferRatio](https://ionicframework.com/docs/api/components/virtual-scroll/VirtualScroll/).
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#virtualscrollbufferratio).
     *
     * @default 3
     * @memberof IonicSelectableComponent
     */
    virtualScrollBufferRatio: number;
    /**
     * A placeholder for Searchbar.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#searchplaceholder).
     *
     * @default 'Search'
     * @memberof IonicSelectableComponent
     */
    searchPlaceholder: string;
    /**
     * A placeholder.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#placeholder).
     *
     * @default null
     * @memberof IonicSelectableComponent
     */
    placeholder: string;
    /**
     * Determines whether multiple items can be selected.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#ismultiple).
     *
     * @default false
     * @memberof IonicSelectableComponent
     */
    isMultiple: boolean;
    /**
     * Text to display when no items have been found during search.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#searchfailtext).
     *
     * @default 'No items found.'
     * @memberof IonicSelectableComponent
     */
    searchFailText: string;
    /**
     * Clear button text.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#clearbuttontext).
     *
     * @default 'Clear'
     * @memberof IonicSelectableComponent
     */
    clearButtonText: string;
    /**
     * OK button text.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#okbuttontext).
     *
     * @default 'OK'
     * @memberof IonicSelectableComponent
     */
    okButtonText: string;
    /**
     * Close button text.
     * The field is only applicable to **iOS** platform, on **Android** only Cross icon is displayed.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#closebuttontext).
     *
     * @default 'Cancel'
     * @memberof IonicSelectableComponent
     */
    closeButtonText: string;
    /**
     * Determines whether Searchbar should receive focus when Select page is opened.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#focussearchbar).
     *
     * @default false
     * @memberof IonicSelectableComponent
     */
    focusSearchbar: boolean;
    /**
     * Header color. [Ionic colors](https://ionicframework.com/docs/theming/theming-your-app/) are supported.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#headercolor).
     *
     * @default null
     * @memberof IonicSelectableComponent
     */
    headerColor: string;
    /**
     * Fires when the user has selected item/s.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#onchange).
     *
     * @memberof IonicSelectableComponent
     */
    onChange: EventEmitter<{
        component: IonicSelectableComponent;
        value: any;
    }>;
    /**
     * Fires when the user is typing in Searchbar.
     * **Note**: `canSearch` and `isOnSearchEnabled` has to be enabled.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#onsearch).
     *
     * @memberof IonicSelectableComponent
     */
    onSearch: EventEmitter<{
        component: IonicSelectableComponent;
        text: string;
    }>;
    /**
     * Fires when the user has scrolled to the end of the list.
     * **Note**: `hasInfiniteScroll` has to be enabled.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#oninfinitescroll).
     *
     * @memberof IonicSelectableComponent
     */
    onInfiniteScroll: EventEmitter<{
        component: IonicSelectableComponent;
        text: string;
    }>;
    /**
     * Fires when the user has opened Select page.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#onopen).
     *
     * @memberof IonicSelectableComponent
     */
    onOpen: EventEmitter<{
        component: IonicSelectableComponent;
    }>;
    /**
     * Fires when the user has closed Select page.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#onclose).
     *
     * @memberof IonicSelectableComponent
     */
    onClose: EventEmitter<{
        component: IonicSelectableComponent;
    }>;
    /**
     * A list of items that are selected and awaiting confirmation by user, when he has clicked OK button.
     * After the user has clicked OK button items to confirm are cleared.
     * **Note**: `isMultiple` has to be enabled.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#itemstoconfirm).
     *
     * @default []
     * @readonly
     * @memberof IonicSelectableComponent
     */
    readonly itemsToConfirm: any[];
    /**
     * How long, in milliseconds, to wait to filter items or to trigger `onSearch` event after each keystroke.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#searchdebounce).
     *
     * @default 250
     * @memberof IonicSelectableComponent
     */
    searchDebounce: Number;
    /**
     * Determines whether item value only should be stored in `ngModel`, not the entire item.
     * **Note**: Item value is defined by `itemValueField`.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#shouldstoreitemvalue).
     *
     * @default false
     * @memberof IonicSelectableComponent
     */
    shouldStoreItemValue: boolean;
    constructor(_modalController: ModalController, ionForm: Form, _platform: Platform, ionItem: Item, _iterableDiffers: IterableDiffers, element: ElementRef);
    initFocus(): void;
    enableIonItem(isEnabled: boolean): void;
    _click(event: UIEvent): void;
    _isNullOrWhiteSpace(value: any): boolean;
    _setHasSearchText(): void;
    _hasOnSearch(): boolean;
    _select(selectedItem: any): void;
    _emitValueChange(): void;
    _emitSearch(): void;
    _formatItem(item: any): string;
    _getLabelText(): string;
    _getItemValue(item: any): any;
    _getStoredItemValue(item: any): any;
    _filterItems(): void;
    _isItemSelected(item: any): boolean;
    _addSelectedItem(item: any): void;
    _deleteSelectedItem(item: any): void;
    private _countFooterButtons;
    private _setItems;
    private _formatValueItem;
    private _setIonItemHasFocus;
    private _setIonItemHasValue;
    private _setHasPlaceholder;
    private propagateOnChange;
    private propagateOnTouched;
    private _setIonItemValidityClasses;
    writeValue(value: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    ngOnInit(): void;
    ngOnDestroy(): void;
    ngDoCheck(): void;
    /**
     * Determines whether any item has been selected.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#hasvalue).
     *
     * @returns A boolean determining whether any item has been selected.
     * @memberof IonicSelectableComponent
     */
    hasValue(): boolean;
    /**
     * Opens Select page.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#open).
     *
     * @returns Promise that resolves when Select page has been opened.
     * @memberof IonicSelectableComponent
     */
    open(): Promise<any>;
    /**
     * Closes Select page.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#close).
     *
     * @returns Promise that resolves when Select page has been closed.
     * @memberof IonicSelectableComponent
     */
    close(): Promise<any>;
    /**
     * Clears value.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#clear).
     *
     * @memberof IonicSelectableComponent
     */
    clear(): void;
    /**
     * Scrolls to the top of Select page content.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#scrolltotop).
     *
     * @returns Promise that resolves when scroll has been completed.
     * @memberof IonicSelectableComponent
     */
    scrollToTop(): Promise<any>;
    /**
     * Scrolls to the bottom of Select page content.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#scrolltobottom).
     *
     * @returns Promise that resolves when scroll has been completed.
     * @memberof IonicSelectableComponent
     */
    scrollToBottom(): Promise<any>;
    /**
     * Starts search process by showing Loading spinner.
     * Use it together with `onSearch` event to indicate search start.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#startsearch).
     *
     * @memberof IonicSelectableComponent
     */
    startSearch(): void;
    /**
     * Ends search process by hiding Loading spinner and refreshing items.
     * Use it together with `onSearch` event to indicate search end.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#endsearch).
     *
     * @memberof IonicSelectableComponent
     */
    endSearch(): void;
    /**
     * Enables infinite scroll.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#enableinfinitescroll).
     *
     * @memberof IonicSelectableComponent
     */
    enableInfiniteScroll(): void;
    /**
     * Disables infinite scroll.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#disableinfinitescroll).
     *
     * @memberof IonicSelectableComponent
     */
    disableInfiniteScroll(): void;
    /**
     * Ends infinite scroll.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#endinfinitescroll).
     *
     * @memberof IonicSelectableComponent
     */
    endInfiniteScroll(): void;
    /**
     * Triggers search of items.
     * **Note**: `canSearch` has to be enabled.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#search).
     *
     * @param text Text to search items by.
     * @memberof IonicSelectableComponent
     */
    search(text: string): void;
    /**
     * Shows Loading spinner.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#showloading).
     *
     * @memberof IonicSelectableComponent
     */
    showLoading(): void;
    /**
     * Hides Loading spinner.
     * See more on [GitHub](https://github.com/eakoriakin/ionic-selectable/wiki/Documentation#hideloading).
     *
     * @memberof IonicSelectableComponent
     */
    hideLoading(): void;
}
