import type { RecommendationRequest } from '../../api/search/recommendation/recommendation-request.js';
import type { Result } from '../../api/search/search/result.js';
import type { RecommendationAppState } from '../../state/recommendation-app-state.js';
import type { ConfigurationSection, RecommendationSection } from '../../state/state-sections.js';
import type { AnalyticsAsyncThunk } from '../analytics/analytics-utils.js';
export type StateNeededByGetRecommendations = ConfigurationSection & RecommendationSection & Partial<RecommendationAppState>;
export interface GetRecommendationsThunkReturn {
    recommendations: Result[];
    analyticsAction: AnalyticsAsyncThunk;
    searchUid: string;
    duration: number;
    splitTestRun: string;
    pipeline: string;
}
export interface SetRecommendationIdActionCreatorPayload {
    /**
     * The recommendation identifier.
     */
    id: string;
}
export declare const setRecommendationId: import("@reduxjs/toolkit").ActionCreatorWithPreparedPayload<[payload: SetRecommendationIdActionCreatorPayload], SetRecommendationIdActionCreatorPayload, "recommendation/set", never, never>;
export declare const getRecommendations: import("@reduxjs/toolkit").AsyncThunk<GetRecommendationsThunkReturn, void, {
    rejectValue: import("../../api/search/search-api-error-response.js").SearchAPIErrorWithStatusCode;
    state: StateNeededByGetRecommendations;
    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 buildRecommendationRequest: (s: StateNeededByGetRecommendations) => Promise<RecommendationRequest>;
