import type { StateFromReducersMapObject } from '@reduxjs/toolkit';
import type { RecommendationAppState } from '../../state/recommendation-app-state.js';
import { type CoreEngine, type ExternalEngineOptions } from '../engine.js';
import type { SearchThunkExtraArguments } from '../search-thunk-extra-arguments.js';
import { getSampleRecommendationEngineConfiguration, type RecommendationEngineConfiguration } from './recommendation-engine-configuration.js';
export type { RecommendationEngineConfiguration };
export { getSampleRecommendationEngineConfiguration };
declare const recommendationEngineReducers: {
    debug: import("redux").Reducer<boolean> & {
        getInitialState: () => boolean;
    };
    pipeline: import("redux").Reducer<string> & {
        getInitialState: () => string;
    };
    searchHub: import("redux").Reducer<string> & {
        getInitialState: () => string;
    };
    recommendation: import("redux").Reducer<import("../../features/recommendation/recommendation-state.js").RecommendationState> & {
        getInitialState: () => import("../../features/recommendation/recommendation-state.js").RecommendationState;
    };
};
type RecommendationEngineReducers = typeof recommendationEngineReducers;
type RecommendationEngineState = StateFromReducersMapObject<RecommendationEngineReducers> & Partial<RecommendationAppState>;
/**
 * The engine for powering recommendation experiences.
 *
 * @group Engine
 */
export interface RecommendationEngine<State extends object = {}> extends CoreEngine<State & RecommendationEngineState, SearchThunkExtraArguments> {
}
/**
 * The recommendation engine options.
 *
 * @group Engine
 */
export interface RecommendationEngineOptions extends ExternalEngineOptions<RecommendationEngineState> {
    /**
     * The recommendation engine configuration options.
     */
    configuration: RecommendationEngineConfiguration;
}
/**
 * Creates a recommendation engine instance.
 *
 * @param options - The recommendation engine options.
 * @returns A recommendation engine instance.
 *
 * @group Engine
 */
export declare function buildRecommendationEngine(options: RecommendationEngineOptions): RecommendationEngine;
