///
import React from 'react';
import { LinkComponent, ReferralContextIdentifiers } from './GlobalQuickSearchWrapper';
import { SelectedSearchResultEvent } from '../util/analytics-event-helper';
import { CreateAnalyticsEventFn } from './analytics/types';
import { FilterWithMetadata } from './../api/CrossProductSearchClient';
export interface Props {
onMount?: () => void;
onSearch(query: string, queryVersion: number, filters?: FilterWithMetadata[]): void;
onSearchSubmit?(event: React.KeyboardEvent): void;
onAutocomplete?(query: string): void;
isLoading: boolean;
placeholder?: string;
searchSessionId: string;
children: React.ReactNode;
linkComponent?: LinkComponent;
createAnalyticsEvent?: CreateAnalyticsEventFn;
isSendSearchTermsEnabled?: boolean;
selectedResultId?: string;
onSelectedResultIdChanged?: (id: string | number | null) => void;
inputControls?: JSX.Element;
autocompleteSuggestions?: string[];
referralContextIdentifiers?: ReferralContextIdentifiers;
filters?: FilterWithMetadata[];
advancedSearchId: string;
}
export interface State {
query: string;
autocompleteText: string | undefined;
}
/**
* Presentational component that renders the search input and search results.
*/
export declare class GlobalQuickSearch extends React.Component {
queryVersion: number;
autoCompleteVersion: number;
autoCompleteLastTimeStamp: number;
resultSelected: boolean;
state: State;
static getDerivedStateFromProps(nextProps: Readonly, prevState: State): State;
componentDidMount(): void;
componentDidUpdate(prevProps: Props, prevState: State): void;
handleSearchInput: ({ target }: React.FormEvent, isAutocompleted?: boolean | undefined) => void;
debouncedSearch: ((query: string) => void) & import("lodash").Cancelable;
doSearch(query: string): void;
debouncedAutocomplete: ((query: string) => void) & import("lodash").Cancelable;
doAutocomplete(query: string): void;
fireSearchResultSelectedEvent: (eventData: SelectedSearchResultEvent) => void;
fireSearchResultEvents: (eventName: string, eventData: Object) => void;
componentWillUnmount(): void;
render(): JSX.Element;
}
declare const _default: React.ForwardRefExoticComponent & React.RefAttributes>;
export default _default;