import type { SearchResponseSuccess } from '../../api/search/search/search-response.js';
import type { InstantResultSection } from '../../state/state-sections.js';
import { type LegacySearchAction } from '../analytics/analytics-utils.js';
import { type FetchInstantResultsActionCreatorPayload, type FetchInstantResultsThunkReturn } from '../instant-results/instant-results-actions.js';
import { type UpdateQueryActionCreatorPayload } from '../query/query-actions.js';
import { type StateNeededByExecuteSearch } from './search-actions-thunk-processor.js';
export interface SearchAction {
    actionCause: string;
}
export interface ExecuteSearchThunkReturn {
    /** The successful search response. */
    response: SearchResponseSuccess;
    /** The number of milliseconds it took to receive the response. */
    duration: number;
    /** The query that was executed. */
    queryExecuted: string;
    /** Whether the query was automatically corrected. */
    automaticallyCorrected: boolean;
    /** The original query that was performed when an automatic correction is executed.*/
    originalQuery: string;
}
export interface PrepareForSearchWithQueryOptions {
    /**
     * Whether to clear all active query filters when the end user submits a new query from the search box.
     * Setting this option to "false" is not recommended & can lead to an increasing number of queries returning no results.
     */
    clearFilters: boolean;
}
export declare const prepareForSearchWithQuery: import("@reduxjs/toolkit").AsyncThunk<void, UpdateQueryActionCreatorPayload & PrepareForSearchWithQueryOptions, {
    state: StateNeededByExecuteSearch;
    extra: import("../../app/thunk-extra-arguments.js").ThunkExtraArguments;
    dispatch?: import("redux-thunk").ThunkDispatch<unknown, unknown, import("redux").UnknownAction> | undefined;
    rejectValue?: unknown;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export interface TransitiveSearchAction {
    legacy: LegacySearchAction;
    next?: SearchAction;
}
export declare const updateSearchAction: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<SearchAction | undefined, string>;
export declare const executeSearch: import("@reduxjs/toolkit").AsyncThunk<ExecuteSearchThunkReturn, TransitiveSearchAction, {
    rejectValue: import("../../api/search/search-api-error-response.js").SearchAPIErrorWithStatusCode;
    state: StateNeededByExecuteSearch;
    extra: import("../../app/thunk-extra-arguments.js").ClientThunkExtraArguments<import("../../api/search/search-api-client.js").SearchAPIClient, import("../../api/generated-answer/generated-answer-client.js").GeneratedAnswerAPIClient>;
    dispatch?: import("redux-thunk").ThunkDispatch<unknown, unknown, import("redux").UnknownAction> | undefined;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const fetchPage: import("@reduxjs/toolkit").AsyncThunk<ExecuteSearchThunkReturn, TransitiveSearchAction, {
    rejectValue: import("../../api/search/search-api-error-response.js").SearchAPIErrorWithStatusCode;
    state: StateNeededByExecuteSearch;
    extra: import("../../app/thunk-extra-arguments.js").ClientThunkExtraArguments<import("../../api/search/search-api-client.js").SearchAPIClient, import("../../api/generated-answer/generated-answer-client.js").GeneratedAnswerAPIClient>;
    dispatch?: import("redux-thunk").ThunkDispatch<unknown, unknown, import("redux").UnknownAction> | undefined;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const fetchMoreResults: import("@reduxjs/toolkit").AsyncThunk<ExecuteSearchThunkReturn, void, {
    rejectValue: import("../../api/search/search-api-error-response.js").SearchAPIErrorWithStatusCode;
    state: StateNeededByExecuteSearch;
    extra: import("../../app/thunk-extra-arguments.js").ClientThunkExtraArguments<import("../../api/search/search-api-client.js").SearchAPIClient, import("../../api/generated-answer/generated-answer-client.js").GeneratedAnswerAPIClient>;
    dispatch?: import("redux-thunk").ThunkDispatch<unknown, unknown, import("redux").UnknownAction> | undefined;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const fetchFacetValues: import("@reduxjs/toolkit").AsyncThunk<ExecuteSearchThunkReturn, TransitiveSearchAction, {
    rejectValue: import("../../api/search/search-api-error-response.js").SearchAPIErrorWithStatusCode;
    state: StateNeededByExecuteSearch;
    extra: import("../../app/thunk-extra-arguments.js").ClientThunkExtraArguments<import("../../api/search/search-api-client.js").SearchAPIClient, import("../../api/generated-answer/generated-answer-client.js").GeneratedAnswerAPIClient>;
    dispatch?: import("redux-thunk").ThunkDispatch<unknown, unknown, import("redux").UnknownAction> | undefined;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const fetchInstantResults: import("@reduxjs/toolkit").AsyncThunk<FetchInstantResultsThunkReturn, FetchInstantResultsActionCreatorPayload, {
    rejectValue: import("../../api/search/search-api-error-response.js").SearchAPIErrorWithStatusCode;
    state: import("../../state/state-sections.js").ConfigurationSection & Partial<import("../../state/state-sections.js").QuerySection & import("../../state/state-sections.js").AdvancedSearchQueriesSection & import("../../state/state-sections.js").PaginationSection & import("../../state/state-sections.js").SortSection & import("../../state/state-sections.js").FacetSection & import("../../state/state-sections.js").NumericFacetSection & import("../../state/state-sections.js").CategoryFacetSection & import("../../state/state-sections.js").DateFacetSection & import("../../state/state-sections.js").ContextSection & import("../../state/state-sections.js").DidYouMeanSection & import("../../state/state-sections.js").FieldsSection & import("../../state/state-sections.js").PipelineSection & import("../../state/state-sections.js").SearchHubSection & import("../../state/state-sections.js").QuerySetSection & import("../../state/state-sections.js").FacetOptionsSection & import("../../state/state-sections.js").FacetOrderSection & import("../../state/state-sections.js").DebugSection & import("../../state/state-sections.js").SearchSection & import("../../state/state-sections.js").FoldingSection & import("../../state/state-sections.js").TriggerSection> & InstantResultSection;
    extra: import("../../app/thunk-extra-arguments.js").ClientThunkExtraArguments<import("../../api/search/search-api-client.js").SearchAPIClient, import("../../api/generated-answer/generated-answer-client.js").GeneratedAnswerAPIClient>;
    dispatch?: import("redux-thunk").ThunkDispatch<unknown, unknown, import("redux").UnknownAction> | undefined;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
