import { DoCheck, KeyValueDiffers, OnChanges, OnInit, EventEmitter } from '@angular/core';
export declare class NgxMagicSearchComponent implements OnInit, OnChanges, DoCheck {
    private differs;
    strings: {
        remove: string;
        cancel: string;
        prompt: string;
        text: string;
    };
    facets_param: any;
    textSearchEvent: EventEmitter<string>;
    searchUpdatedEvent: EventEmitter<{
        key: string;
        values: string[];
    }[]>;
    setFocusedEventEmitter: boolean;
    searchInput: string;
    private promptString;
    currentSearch: any[];
    private facetsObj;
    private facetsSave;
    facetSelected: any;
    filteredObj: any;
    filteredOptions: any;
    private facetOptions;
    private textSearch;
    isMenuOpen: boolean;
    private differ;
    private hostEvent;
    constructor(differs: KeyValueDiffers);
    ngOnInit(): void;
    ngOnChanges(): void;
    ngDoCheck(): void;
    /**
     *
     *
     *
     * @memberOf NgxMagicSearchComponent
     */
    initSearch(): void;
    /**
     *
     *
     *
     * @memberOf NgxMagicSearchComponent
     */
    initFacets(): void;
    /**
     * add a facets javascript object to the existing list
     *
     * @param facets
     *
     * @memberOf NgxMagicSearchComponent
     */
    addFacets(facets: any): void;
    /**
     *
     *
     * @param facets
     * @returns
     *
     * @memberOf NgxMagicSearchComponent
     */
    copyFacets(facets: any): any;
    /**
     *
     *
     * @param facetParts
     *
     * @memberOf NgxMagicSearchComponent
     */
    deleteFacetSelection(facetParts: any): void;
    /**
     * remove entire facet
     *
     * @param facetParts
     *
     * @memberOf NgxMagicSearchComponent
     */
    deleteFacetEntirely(facetParts: any): void;
    /**
     * try filtering facets/options.. if no facets match, do text search
     *
     * @param searchVal
     * @returns
     *
     * @memberOf NgxMagicSearchComponent
     */
    filterFacets(searchVal: string): void;
    /**
     *
     *
     * @param label
     * @returns
     *
     * @memberOf NgxMagicSearchComponent
     */
    isMatchLabel(label: string): boolean;
    /**
     *
     *
     *
     * @memberOf NgxMagicSearchComponent
     */
    resetState(): void;
    /**
     * showMenu and hideMenu depend on foundation's dropdown. They need
     * to be modified to work with another dropdown implemenation (i.e. bootstrap)
     *
     *
     * @memberOf NgxMagicSearchComponent
     */
    showMenu(): void;
    /**
     * hide dropdown
     *
     *
     * @memberOf NgxMagicSearchComponent
     */
    hideMenu(): void;
    /**
     *
     *
     * @param query
     *
     * @memberOf NgxMagicSearchComponent
     */
    updateUrl(query: string): void;
    /**
     *
     *
     * @returns
     *
     * @memberOf NgxMagicSearchComponent
     */
    buildTermsArray(): Array<{
        key: string;
        values: Array<string>;
    }>;
    /**
     *
     *
     * @param array
     * @param key_name
     * @param value
     * @returns
     *
     * @memberOf NgxMagicSearchComponent
     */
    getIndexBy(array: Array<any>, key_name: string, value: number | string): number;
    /*****************************************************************/
    /**********************        EVENTS       **********************/
    /*****************************************************************/
    /**
     *
     *
     * @param event
     *
     * @memberOf NgxMagicSearchComponent
     */
    handleKeyDown(event: any): void;
    /**
     *
     *
     * @param event
     * @returns
     *
     * @memberOf NgxMagicSearchComponent
     */
    handleKeyUp(event: any): void;
    /**
     *
     *
     * @param event
     * @returns
     *
     * @memberOf NgxMagicSearchComponent
     */
    handleKeyPress(event: any): void;
    /**
     * enable text entry when mouse clicked anywhere in search box
     *
     *
     * @memberOf NgxMagicSearchComponent
     */
    enableTextEntry(): void;
    /**
     * when facet clicked, add 1st part of facet and set up options
     *
     * @param index
     * @param name
     *
     * @memberOf NgxMagicSearchComponent
     */
    facetClicked(index: number, name: string): void;
    /**
     * when option clicked, complete facet and send event
     *
     * @param index
     * @param name
     *
     * @memberOf NgxMagicSearchComponent
     */
    optionClicked(index: number, name: string): void;
    /**
     *
     *
     * @param category
     * @param option
     *
     * @memberOf NgxMagicSearchComponent
     */
    addFilterManually(category: string, option: string): void;
    /**
     *
     *
     * @param category
     * @param option
     *
     * @memberOf NgxMagicSearchComponent
     */
    removeFilterManually(category: string, option: string): void;
    /**
     * send event with new query string
     *
     * @param removed
     *
     * @memberOf NgxMagicSearchComponent
     */
    emitQuery(removed?: any | undefined): void;
    /**
     * remove facet and either update filter or search
     *
     * @param index
     *
     * @memberOf NgxMagicSearchComponent
     */
    removeFacet(index: number): void;
    /**
     * clear entire searchbar
     *
     *
     * @memberOf NgxMagicSearchComponent
     */
    clearSearch(): void;
    /** Catch click outside of the component */
    compareEvent(globalEvent: any): void;
    trackEvent(newHostEvent: any): void;
}
