import type { StateFromReducersMapObject } from '@reduxjs/toolkit'; import type { LegacySearchAction } from '../../features/analytics/analytics-utils.js'; import type { ConfigurationState } from '../../features/configuration/configuration-state.js'; import type { StandaloneSearchBoxAnalytics } from '../../features/standalone-search-box-set/standalone-search-box-set-state.js'; import type { SearchAppState } from '../../state/search-app-state.js'; import { type CoreEngine, type ExternalEngineOptions } from '../engine.js'; import type { SearchThunkExtraArguments } from '../search-thunk-extra-arguments.js'; import { getSampleSearchEngineConfiguration, type SearchConfigurationOptions, type SearchEngineConfiguration } from './search-engine-configuration.js'; export type { SearchConfigurationOptions, SearchEngineConfiguration }; export { getSampleSearchEngineConfiguration }; declare const searchEngineReducers: { debug: import("@reduxjs/toolkit").Reducer & { getInitialState: () => boolean; }; pipeline: import("@reduxjs/toolkit").Reducer & { getInitialState: () => string; }; searchHub: import("@reduxjs/toolkit").Reducer & { getInitialState: () => string; }; search: import("@reduxjs/toolkit").Reducer & { getInitialState: () => import("../../features/search/search-state.js").SearchState; }; }; type SearchEngineReducers = typeof searchEngineReducers; type SearchEngineState = StateFromReducersMapObject & Partial; /** * The engine for powering search experiences. * * @group Engine */ export interface SearchEngine extends CoreEngine { /** * Executes the first search. * * @param analyticsEvent - The analytics event to log in association with the first search. If unspecified, `logInterfaceLoad` will be used. */ executeFirstSearch(analyticsEvent?: LegacySearchAction): void; /** * Executes the first search, and logs the analytics event that triggered a redirection from a standalone search box. * * @param analytics - The standalone search box analytics data. */ executeFirstSearchAfterStandaloneSearchBoxRedirect(analytics: StandaloneSearchBoxAnalytics): void; } /** * The search engine options. * * @group Engine */ export interface SearchEngineOptions extends ExternalEngineOptions { /** * The search engine configuration options. */ configuration: SearchEngineConfiguration; } /** * Creates a search engine instance. * * @param options - The search engine options. * @returns A search engine instance. * * @group Engine */ export declare function buildSearchEngine(options: SearchEngineOptions): SearchEngine;