import { OnInit, OnChanges, SimpleChanges, EventEmitter, Renderer2 } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import { INgMultiselectItem, NgMultiselectItem } from './ng-multiselect.models';
export declare class NgMultiselectComponent implements OnInit, OnChanges {
    private _renderer;
    private _formBuilder;
    selectForm: FormGroup;
    dropdownVisible: boolean;
    filteredItems: Array<INgMultiselectItem>;
    itemAll: NgMultiselectItem;
    selectedItemsKeys: string;
    hoveredItem: INgMultiselectItem;
    private _hoveredItemIndex;
    private _selectedItems;
    /**
     * Altura de los elementos de la caja de selección.
     */
    private _listItemHeight;
    term: string;
    source: Array<INgMultiselectItem>;
    top: number;
    /**
     * Para permitir que funcione como un select de 1 sólo registro.
     */
    onlyOneRow: boolean;
    inputSearchPlaceHolder: string;
    disabled: boolean;
    toggleButtonText: string;
    noRowsText: string;
    accentInsensitive: boolean;
    toggleButtonClasses: Array<string>;
    selectedItemsChanged: EventEmitter<INgMultiselectItem[]>;
    selectedItemsKeysChanged: EventEmitter<string>;
    private _containerRef;
    private _dropdownRef;
    private _dropdownItemsRef;
    private _inputRef;
    /**
     * Evento click del documento para determinar si se oculta el dropdown de elementos.
     * @param event Evento click del mouse
     */
    documentClick(event: MouseEvent): void;
    /**
     * Evento tecla ESCAPE del documento para determinar si se oculta el dropdown de elementos.
     * @param event Evento tecla
     */
    documentKeyup(event: KeyboardEvent): void;
    constructor(_renderer: Renderer2, _formBuilder: FormBuilder);
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    /**
     * Selecciona el elemento indicado
     * @param item Elemento a seleccionar
     */
    selectItem(item: INgMultiselectItem): void;
    toggleButtonClick(): void;
    /**
     * Selecciona/desselecciona todos los registros filtrados.
     */
    selectUnselectAll(): void;
    clearTerm(): void;
    inputKeyup(event: KeyboardEvent): void;
    private _initialize();
    private _createForm();
    private _filterData(term?);
    private _match(item, term);
    private _showDropdown();
    private _hideDropdown();
    private _setSelectedItems();
    /**
     * Ajusta el scroll para visualizar el elemento actualmente seleccionado
     */
    private _scrollToView(index);
}
