import { type SearchOptions } from '../../api/search/search-api-client.js';
import type { InsightAPIClient } from '../../api/service/insight/insight-api-client.js';
import type { InsightQueryRequest } from '../../api/service/insight/query/query-request.js';
import type { CategoryFacetSection, ConfigurationSection, ContextSection, DateFacetSection, DidYouMeanSection, FacetSection, FieldsSection, FoldingSection, InsightCaseContextSection, InsightConfigurationSection, NumericFacetSection, PaginationSection, QuerySection, QuerySetSection, QuerySuggestionSection, SearchSection, SortSection, TabSection } from '../../state/state-sections.js';
import type { InsightAction as LegacyInsightAction } from '../analytics/analytics-utils.js';
import type { FetchQuerySuggestionsActionCreatorPayload, FetchQuerySuggestionsThunkReturn } from '../query-suggest/query-suggest-actions.js';
import type { ExecuteSearchThunkReturn, SearchAction } from '../search/search-actions.js';
import { type MappedSearchRequest } from '../search/search-mappings.js';
export type StateNeededByExecuteSearch = ConfigurationSection & InsightConfigurationSection & Partial<InsightCaseContextSection & SearchSection & QuerySection & FacetSection & NumericFacetSection & DateFacetSection & CategoryFacetSection & PaginationSection & TabSection & FieldsSection & DidYouMeanSection & SortSection & FoldingSection & ContextSection>;
export declare const fetchFromAPI: (client: InsightAPIClient, state: StateNeededByExecuteSearch, { request, mappings }: MappedSearchRequest<InsightQueryRequest>, options?: SearchOptions) => Promise<{
    response: import("../search/search-mappings.js").ErrorResponse | import("../search/search-mappings.js").SuccessResponse;
    duration: number;
    queryExecuted: string;
    requestExecuted: InsightQueryRequest;
}>;
interface TransitiveInsightSearchAction {
    legacy: LegacyInsightAction;
    next?: SearchAction;
}
export declare const executeSearch: import("@reduxjs/toolkit").AsyncThunk<ExecuteSearchThunkReturn, TransitiveInsightSearchAction, {
    rejectValue: import("../../api/service/insight/insight-api-client.js").InsightAPIErrorStatusResponse;
    state: StateNeededByExecuteSearch;
    extra: import("../../app/thunk-extra-arguments.js").ClientThunkExtraArguments<InsightAPIClient, import("../../api/generated-answer/generated-answer-client.js").GeneratedAnswerAPIClient>;
    dispatch?: import("redux-thunk").ThunkDispatch<unknown, unknown, import("@reduxjs/toolkit").UnknownAction> | undefined;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const fetchPage: import("@reduxjs/toolkit").AsyncThunk<ExecuteSearchThunkReturn, TransitiveInsightSearchAction, {
    rejectValue: import("../../api/service/insight/insight-api-client.js").InsightAPIErrorStatusResponse;
    state: StateNeededByExecuteSearch;
    extra: import("../../app/thunk-extra-arguments.js").ClientThunkExtraArguments<InsightAPIClient, import("../../api/generated-answer/generated-answer-client.js").GeneratedAnswerAPIClient>;
    dispatch?: import("redux-thunk").ThunkDispatch<unknown, unknown, import("@reduxjs/toolkit").UnknownAction> | undefined;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const fetchMoreResults: import("@reduxjs/toolkit").AsyncThunk<ExecuteSearchThunkReturn, void, {
    rejectValue: import("../../api/service/insight/insight-api-client.js").InsightAPIErrorStatusResponse;
    state: StateNeededByExecuteSearch;
    extra: import("../../app/thunk-extra-arguments.js").ClientThunkExtraArguments<InsightAPIClient, import("../../api/generated-answer/generated-answer-client.js").GeneratedAnswerAPIClient>;
    dispatch?: import("redux-thunk").ThunkDispatch<unknown, unknown, import("@reduxjs/toolkit").UnknownAction> | undefined;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const fetchFacetValues: import("@reduxjs/toolkit").AsyncThunk<ExecuteSearchThunkReturn, TransitiveInsightSearchAction, {
    rejectValue: import("../../api/service/insight/insight-api-client.js").InsightAPIErrorStatusResponse;
    state: StateNeededByExecuteSearch;
    extra: import("../../app/thunk-extra-arguments.js").ClientThunkExtraArguments<InsightAPIClient, import("../../api/generated-answer/generated-answer-client.js").GeneratedAnswerAPIClient>;
    dispatch?: import("redux-thunk").ThunkDispatch<unknown, unknown, import("@reduxjs/toolkit").UnknownAction> | undefined;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export type StateNeededByQuerySuggest = ConfigurationSection & InsightConfigurationSection & Partial<ConfigurationSection & QuerySuggestionSection & QuerySetSection & InsightCaseContextSection>;
export declare const fetchQuerySuggestions: import("@reduxjs/toolkit").AsyncThunk<FetchQuerySuggestionsThunkReturn, FetchQuerySuggestionsActionCreatorPayload, {
    rejectValue: import("../../api/service/insight/insight-api-client.js").InsightAPIErrorStatusResponse;
    state: StateNeededByQuerySuggest;
    extra: import("../../app/thunk-extra-arguments.js").ClientThunkExtraArguments<InsightAPIClient, import("../../api/generated-answer/generated-answer-client.js").GeneratedAnswerAPIClient>;
    dispatch?: import("redux-thunk").ThunkDispatch<unknown, unknown, import("@reduxjs/toolkit").UnknownAction> | undefined;
    serializedErrorType?: unknown;
    pendingMeta?: unknown;
    fulfilledMeta?: unknown;
    rejectedMeta?: unknown;
}>;
export declare const addEntryInActionsHistory: (state: StateNeededByExecuteSearch) => void;
export {};
