import type { UnknownAction } from '@reduxjs/toolkit'; import type { ThunkDispatch } from 'redux-thunk'; import type { SearchRequest } from '../../api/search/search/search-request.js'; import { type SearchAPIClient } from '../../api/search/search-api-client.js'; import type { SearchAPIErrorWithStatusCode } from '../../api/search/search-api-error-response.js'; import type { SearchOrigin } from '../../api/search/search-metadata.js'; import type { ClientThunkExtraArguments } from '../../app/thunk-extra-arguments.js'; import type { AdvancedSearchQueriesSection, CategoryFacetSection, ConfigurationSection, ContextSection, DateFacetSection, DebugSection, DidYouMeanSection, FacetOptionsSection, FacetOrderSection, FacetSection, FieldsSection, FoldingSection, NumericFacetSection, PaginationSection, PipelineSection, QuerySection, QuerySetSection, SearchHubSection, SearchSection, SortSection, TriggerSection } from '../../state/state-sections.js'; import type { ExecuteSearchThunkReturn } from './search-actions.js'; import { type ErrorResponse, type MappedSearchRequest, type SuccessResponse } from './search-mappings.js'; interface AnalyticsAction { actionCause?: string; } export type StateNeededByExecuteSearch = ConfigurationSection & Partial; interface FetchedResponse { response: SuccessResponse | ErrorResponse; duration: number; queryExecuted: string; requestExecuted: SearchRequest; } type ValidReturnTypeFromProcessingStep = ExecuteSearchThunkReturn | RejectionType; interface AsyncThunkConfig { getState: () => StateNeededByExecuteSearch; dispatch: ThunkDispatch & { searchAPIClient?: SearchAPIClient | undefined; }, UnknownAction>; rejectWithValue: (err: SearchAPIErrorWithStatusCode) => unknown; analyticsAction: AnalyticsAction; extra: ClientThunkExtraArguments; } type QueryCorrectionCallback = (modification: string) => void; interface FetchFromAPIOptions { origin: SearchOrigin; disableAbortWarning?: boolean; } export declare class AsyncSearchThunkProcessor { private config; private onUpdateQueryForCorrection; constructor(config: AsyncThunkConfig, onUpdateQueryForCorrection?: QueryCorrectionCallback); fetchFromAPI({ mappings, request }: MappedSearchRequest, options: FetchFromAPIOptions): Promise<{ response: ErrorResponse | SuccessResponse; duration: number; queryExecuted: string; requestExecuted: SearchRequest; }>; process(fetched: FetchedResponse): Promise>; private processQueryErrorOrContinue; private processQueryCorrectionsOrContinue; private processLegacyDidYouMeanAutoCorrection; private processModernDidYouMeanAutoCorrection; private processQueryTriggersOrContinue; private processSuccessResponse; private getSuccessResponse; private automaticallyRetryQueryWithCorrection; private automaticallyRetryQueryWithTriggerModification; private getCurrentQuery; private get extra(); private getState; private get dispatch(); private get rejectWithValue(); } export {};