import type { StateFromReducersMapObject } from '@reduxjs/toolkit'; import type { LegacySearchAction } from '../../features/analytics/analytics-utils.js'; import type { InsightAppState } from '../../state/insight-app-state.js'; import { type CoreEngine, type ExternalEngineOptions } from '../engine.js'; import type { InsightThunkExtraArguments } from '../insight-thunk-extra-arguments.js'; import { getSampleInsightEngineConfiguration, type InsightEngineConfiguration, type InsightEngineSearchConfigurationOptions } from './insight-engine-configuration.js'; export type { InsightEngineConfiguration, InsightEngineSearchConfigurationOptions, }; export { getSampleInsightEngineConfiguration }; declare const insightEngineReducers: { insightConfiguration: import("@reduxjs/toolkit").Reducer & { getInitialState: () => import("../../features/insight-configuration/insight-configuration-state.js").InsightConfigurationState; }; search: import("@reduxjs/toolkit").Reducer & { getInitialState: () => import("../../features/search/search-state.js").SearchState; }; insightInterface: import("@reduxjs/toolkit").Reducer & { getInitialState: () => import("../../insight.index.js").InsightInterfaceState; }; searchHub: import("@reduxjs/toolkit").Reducer & { getInitialState: () => string; }; resultPreview: import("@reduxjs/toolkit").Reducer & { getInitialState: () => import("../../features/result-preview/result-preview-state.js").ResultPreviewState; }; }; type InsightEngineReducers = typeof insightEngineReducers; type InsightEngineState = StateFromReducersMapObject & Partial; /** * The engine for powering insight experiences. * * @group Engine */ export interface InsightEngine extends CoreEngine { /** * Executes the first search. * * @param analyticsEvent - The analytics event to log in association with the first search. If unspecified, `logInsightInterfaceLoad` will be used. */ executeFirstSearch(analyticsEvent?: LegacySearchAction): void; } /** * The insight engine options. * * @group Engine */ export interface InsightEngineOptions extends ExternalEngineOptions { /** * The insight engine configuration options. */ configuration: InsightEngineConfiguration; } /** * Creates an insight engine instance. * * @param options - The insight engine options. * @returns An insight engine instance. * * @group Engine */ export declare function buildInsightEngine(options: InsightEngineOptions): InsightEngine;