import React from 'react'; import { InjectedIntlProps } from 'react-intl'; import { CancelableEvent } from '@atlaskit/quick-search'; import { ConfluenceClient } from '../../api/ConfluenceClient'; import { CrossProductSearchClient, CrossProductSearchResults, Filter, SpaceFilter, FilterWithMetadata, QueryBasedSpaceFilterMetadata } from '../../api/CrossProductSearchClient'; import { ConfluenceModelContext } from '../../api/types'; import { ResultsWithTiming, ConfluenceResultsMap, PersonResult } from '../../model/Result'; import { PeopleSearchClient } from '../../api/PeopleSearchClient'; import { SearchScreenCounter } from '../../util/ScreenCounter'; import { LinkComponent, ReferralContextIdentifiers, Logger } from '../GlobalQuickSearchWrapper'; import { CreateAnalyticsEventFn } from '../analytics/types'; import { SearchResultProps, PartiallyLoadedRecentItems } from '../common/QuickSearchContainer'; import { FilterComponentProps } from '../common/SearchResults'; import { AutocompleteClient } from '../../api/AutocompleteClient'; import { ConfluenceFeatures } from '../../util/features'; /** * NOTE: This component is only consumed internally as such avoid using optional props * i.e. instead of "propX?: something" use "propX: something | undefined" * * This improves type safety and prevent us from accidentally forgetting a parameter. */ export interface Props { crossProductSearchClient: CrossProductSearchClient; peopleSearchClient: PeopleSearchClient; confluenceClient: ConfluenceClient; autocompleteClient: AutocompleteClient; linkComponent: LinkComponent | undefined; referralContextIdentifiers: ReferralContextIdentifiers | undefined; logger: Logger; modelContext: ConfluenceModelContext | undefined; onAdvancedSearch: undefined | ((e: CancelableEvent, entity: string, query: string, searchSessionId: string, spaces?: string[]) => void); inputControls: JSX.Element | undefined; features: ConfluenceFeatures; firePrivateAnalyticsEvent?: any; createAnalyticsEvent?: CreateAnalyticsEventFn; confluenceUrl: string; } /** * Container Component that handles the data fetching when the user interacts with Search. */ export declare class ConfluenceQuickSearchContainer extends React.Component { screenCounters: { preQueryScreenCounter: SearchScreenCounter; postQueryScreenCounter: SearchScreenCounter; }; handleSearchSubmit: (event: React.KeyboardEvent, searchSessionId: string) => void; searchCrossProductConfluence(query: string, sessionId: string, queryVersion: number, filters: Filter[]): Promise; handleSearchErrorAnalytics(error: Error, source: string): void; handleSearchErrorAnalyticsThunk: (source: string) => (reason: any) => void; getSearchResults: (query: string, sessionId: string, startTime: number, queryVersion: number, filters: Filter[]) => Promise>; getRecentPeople: (sessionId: string) => Promise; getRecentItems: (sessionId: string) => PartiallyLoadedRecentItems; getAutocompleteSuggestions: (query: string) => Promise; getPreQueryDisplayedResults: (recentItems: ConfluenceResultsMap | null, searchSessionId: string) => import("../../model/Result").ResultsGroup[]; getPostQueryDisplayedResults: (searchResults: ConfluenceResultsMap | null, latestSearchQuery: string, recentItems: ConfluenceResultsMap | null, isLoading: boolean, searchSessionId: string) => import("../../model/Result").ResultsGroup[]; getNoResultsStateComponent: (latestSearchQuery: string, searchSessionId: string, currentFilters: FilterWithMetadata[], onFilterChanged: (filter: FilterWithMetadata[]) => void) => JSX.Element; getFilterComponent: (searchResults: ConfluenceResultsMap | null) => ({ latestSearchQuery, searchResultsTotalSize, isLoading, searchSessionId, currentFilters, onFilterChanged, }: FilterComponentProps) => JSX.Element | undefined; createQueryBasedSpaceFilter: (currentFilters: FilterWithMetadata[], searchResults: ConfluenceResultsMap) => FilterWithMetadata | undefined; getSearchResultsComponent: ({ retrySearch, latestSearchQuery, isError, searchResults, isLoading, recentItems, searchSessionId, searchMore, currentFilters, onFilterChanged, }: SearchResultProps) => JSX.Element; render(): JSX.Element; } declare const _default: (props: Pick) => JSX.Element; export default _default;