import { ElementRef, EventEmitter, TemplateRef } from '@angular/core';
import { PoMultiselectLiterals } from '../interfaces/po-multiselect-literals.interface';
import { PoMultiselectOption } from '../interfaces/po-multiselect-option.interface';
import { PoListBoxComponent } from './../../../po-listbox/po-listbox.component';
/**
 * @docsPrivate
 *
 * @description
 *
 * Componente que construíra o dropdown, contendo o campo de pesquisa e os itens para seleção.
 */
export declare class PoMultiselectDropdownComponent {
    private readonly cd;
    /** Propriedade que indica se deve exibir o loading. */
    isServerSearching?: boolean;
    /** Propriedade que indica se o campo de pesquisa deverá ser escondido. */
    hideSearch?: boolean;
    /** Propriedade que que recebe as literais definidas no componente `po-multiselect`. */
    literals?: PoMultiselectLiterals;
    /** Placeholder do campo de pesquisa. */
    placeholderSearch: string;
    /** Propriedade que recebe a lista de opções selecionadas. */
    selectedOptions: Array<any>;
    /** Propriedade que recebe a lista com todas as opções. */
    options: Array<PoMultiselectOption | any>;
    /** Propriedade que recebe a lista de opções que deverão ser criadas no dropdown. */
    visibleOptions: Array<PoMultiselectOption | any>;
    /** Propriedade que indica se o campo "Selecionar todos" deverá ser escondido. */
    hideSelectAll?: boolean;
    fieldValue: string;
    fieldLabel: string;
    multiselectTemplate: TemplateRef<any> | any;
    containerWidth: number;
    /** Tamanho do componente. */
    size: string;
    /** Evento disparado a cada tecla digitada na pesquisa. */
    changeSearch: EventEmitter<any>;
    /** Evento disparado a cada alteração na lista das opções selecionadas. */
    change: EventEmitter<any>;
    /**
     * Evento disparado quando for detectada uma ação que necessite fechar o dropdown.
     * Por exemplo, no caso de ser teclado TAB dentro do dropdown, então é disparado este evento
     * para notificar o componente principal que deve fechar o dropdown.
     */
    closeDropdown: EventEmitter<any>;
    container: ElementRef;
    divElement: ElementRef;
    listbox: PoListBoxComponent;
    scrollTop: number;
    show: boolean;
    get hasOptions(): boolean;
    scrollTo(index: any): void;
    isSelectedItem(option: PoMultiselectOption): boolean;
    clickItem(check: any, options?: any): void;
    onClickSelectAll(): void;
    updateSelectedValues(checked: any, option: any): void;
    everyVisibleOptionsSelected(selectedValues: any): boolean;
    someVisibleOptionsSelected(selectedValues: any): boolean;
    getStateSelectAll(): boolean;
    callChangeSearch(event: any): void;
    controlVisibility(toOpen: any): void;
    private uniqueSelectedOptions;
}
