import { ChangeDetectorRef, ElementRef, OnChanges, OnDestroy, OnInit, Renderer2, SimpleChanges } from '@angular/core';
import { PoControlPositionService } from '../../services/po-control-position/po-control-position.service';
import { PoLanguageService } from '../../services/po-language/po-language.service';
import { PoDropdownAction } from '../po-dropdown';
import { PoListBoxComponent } from '../po-listbox';
import { PoSearchFilterSelect } from './interfaces/po-search-filter-select.interface';
import { PoSearchOption } from './interfaces/po-search-option.interface';
import { PoSearchBaseComponent } from './po-search-base.component';
/**
 * @docsExtends PoSearchBaseComponent
 *
 * @example
 *
 * <example name="po-search-basic" title="PO Search Basic">
 *  <file name="sample-po-search-basic/sample-po-search-basic.component.html"> </file>
 *  <file name="sample-po-search-basic/sample-po-search-basic.component.ts"> </file>
 * </example>
 *
 * <example name="po-search-labs" title="PO Search Labs">
 *  <file name="sample-po-search-labs/sample-po-search-labs.component.html"> </file>
 *  <file name="sample-po-search-labs/sample-po-search-labs.component.ts"> </file>
 *  <file name="sample-po-search-labs/sample-po-search-labs.component.css"> </file>
 * </example>
 *
 * <example name="po-search-find-people" title="PO Search Find People">
 *  <file name="sample-po-search-find-people/sample-po-search-find-people.component.html"> </file>
 *  <file name="sample-po-search-find-people/sample-po-search-find-people.component.ts"> </file>
 *  <file name="sample-po-search-find-people/sample-po-search-find-people.component.css"> </file>
 *  <file name="sample-po-search-find-people/sample-po-search-find-people.service.ts"> </file>
 * </example>
 *
 * <example name="po-search-listbox" title="PO Search With Listbox">
 *  <file name="sample-po-search-listbox/sample-po-search-listbox.component.html"> </file>
 *  <file name="sample-po-search-listbox/sample-po-search-listbox.component.ts"> </file>
 *  <file name="sample-po-search-listbox/sample-po-search-listbox.service.ts"> </file>
 * </example>
 *
 * <example name="po-search-filter-select" title="PO Search With Filter Select + Listbox">
 *  <file name="sample-po-search-filter-select/sample-po-search-filter-select.component.html"> </file>
 *  <file name="sample-po-search-filter-select/sample-po-search-filter-select.component.ts"> </file>
 * </example>
 *
 * <example name="po-search-execute" title="PO Search Form Fields with Execute">
 *  <file name="sample-po-search-execute/sample-po-search-execute.component.html"> </file>
 *  <file name="sample-po-search-execute/sample-po-search-execute.component.ts"> </file>
 *  <file name="sample-po-search-execute/sample-po-search-execute.component.css"> </file>
 * </example>
 *
 * <example name="po-search-fields-locate" title="PO Search Form Fields with Locate">
 *  <file name="sample-po-search-fields-locate/sample-po-search-fields-locate.component.html"> </file>
 *  <file name="sample-po-search-fields-locate/sample-po-search-fields-locate.component.ts"> </file>
 * </example>
 *
 */
export declare class PoSearchComponent extends PoSearchBaseComponent implements OnInit, OnDestroy, OnChanges {
    languageService: PoLanguageService;
    protected renderer: Renderer2;
    protected changeDetector: ChangeDetectorRef;
    protected controlPosition: PoControlPositionService;
    private clickoutListener;
    private eventResizeListener;
    private _locateCounter;
    set locateCounter(element: ElementRef);
    get locateCounter(): ElementRef;
    poSearchInput: ElementRef;
    poListboxContainerElement: ElementRef;
    poListboxElement: ElementRef;
    poListbox: PoListBoxComponent;
    basePaddingRightSmall: number;
    basePaddingRightMedium: number;
    dynamicPaddingRight: number;
    listboxFilteredItems: Array<any>;
    filteredItems: Array<any>;
    listboxOpen: boolean;
    shouldMarkLetters: boolean;
    isFiltering: boolean;
    isInputFocused: boolean;
    listboxItemclicked: boolean;
    showSearchLocateControls: boolean;
    showNoResults: boolean;
    locateCounterResize: ResizeObserver;
    searchFilter: {};
    searchFilterSelectLabel: string;
    searchFilterSelectActions: Array<PoDropdownAction>;
    idSearchButtonClean: string;
    protected showFooterActionListbox: boolean;
    protected showSeparator: boolean;
    protected placeholderListbox: string | null;
    protected modelSelected: string;
    constructor();
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    private configureSearchModeExecute;
    ngOnDestroy(): void;
    clearSearch(): void;
    onCleanKeydown(event: KeyboardEvent): void;
    onEnterKey(event: any): void;
    onSearchChange(searchText: string, activated: boolean, buttonClick?: boolean): void;
    private updateFilteredItems;
    private getFilteredItems;
    private itemMatchesFilter;
    getListboxFilteredItems(searchText: string): any[];
    private filterValue;
    get listboxItems(): {
        label: string;
        value: string;
    }[];
    get autocomplete(): string;
    onCloseListbox(): void;
    onListboxClick(option: PoSearchOption | any, event?: any): void;
    onBlur(): void;
    onFocus(): void;
    onInputHandler(value: string): void;
    onKeyDown(event?: KeyboardEvent): void;
    private focusItem;
    private setContainerPosition;
    private adjustContainerPosition;
    private openListbox;
    closeListbox(): void;
    clickedOutsideInput(event: MouseEvent): void;
    private initializeListeners;
    private removeListeners;
    private updatePaddingRightLocate;
    private updateShowSearchLocateControls;
    private readonly onScroll;
    getInputValue(): any;
    createDropdownFilterSelect(): void;
    isSelected(filterOption: PoSearchFilterSelect): boolean;
    changeFilterSelect(filterOption: PoSearchFilterSelect, focus?: boolean): void;
    handlerFooterActionListbox(): void;
    private openListboxFooterAction;
    private handlerPlaceholderListbox;
}
