/**
 * The Coveo Headless SSR sub-package exposes exposes the engine, definers, controllers, actions, and utility functions to build a server side rendered search experience.
 *
 * @example
 * ```typescript
 *   import {
 *     Controller,
 *     ControllerDefinitionsMap,
 *     defineSearchEngine,
 *     InferStaticState,
 *     InferHydratedState,
 *     SearchEngine,
 *     SearchEngineDefinitionOptions,
 *     getSampleSearchEngineConfiguration,
 *     defineResultList,
 *     defineSearchBox,
 *   } from '@coveo/headless/ssr';
 *
 *  const config = {
 *     configuration: {
 *       ...getSampleSearchEngineConfiguration(),
 *       analytics: {
 *         trackingId: 'sports-ui-samples',
 *       },
 *     },
 *     controllers: {
 *       searchBox: defineSearchBox(),
 *       resultList: defineResultList(),
 *     },
 *   } satisfies SearchEngineDefinitionOptions<
 *     ControllerDefinitionsMap<SearchEngine, Controller>
 *   >;
 *
 * const engineDefinition = defineSearchEngine(config);
 *
 * export type SearchStaticState = InferStaticState<typeof engineDefinition>;
 * export type SearchHydratedState = InferHydratedState<typeof engineDefinition>;
 *
 * export const {
 *   fetchStaticState,
 *   hydrateStaticState,
 *   setNavigatorContextProvider,
 * } = engineDefinition;

 * ```
 * @module SSR Search
 */
export { getSampleSearchEngineConfiguration } from './app/search-engine/search-engine.js';
export { defineBreadcrumbManager } from './ssr/search/controllers/breadcrumb-manager/headless-breadcrumb-manager.ssr.js';
export { defineContext } from './ssr/search/controllers/context/headless-context.ssr.js';
export { defineDictionaryFieldContext } from './ssr/search/controllers/dictionary-field-context/headless-dictionary-field-context.ssr.js';
export { defineDidYouMean } from './ssr/search/controllers/did-you-mean/headless-did-you-mean.ssr.js';
export { defineFacetManager } from './ssr/search/controllers/facet-manager/headless-facet-manager.ssr.js';
export { defineAutomaticFacetGenerator } from './ssr/search/controllers/facets/automatic-facet-generator/headless-automatic-facet-generator.ssr.js';
export { defineCategoryFacet } from './ssr/search/controllers/facets/category-facet/headless-category-facet.ssr.js';
export { defineFacet } from './ssr/search/controllers/facets/facet/headless-facet.ssr.js';
export { buildDateRange, defineDateFacet, } from './ssr/search/controllers/facets/range-facet/date-facet/headless-date-facet.ssr.js';
export { defineDateFilter } from './ssr/search/controllers/facets/range-facet/date-facet/headless-date-filter.ssr.js';
export { buildNumericRange, defineNumericFacet, } from './ssr/search/controllers/facets/range-facet/numeric-facet/headless-numeric-facet.ssr.js';
export { defineNumericFilter } from './ssr/search/controllers/facets/range-facet/numeric-facet/headless-numeric-filter.ssr.js';
export { defineCategoryFieldSuggestions } from './ssr/search/controllers/field-suggestions/category-facet/headless-category-field-suggestions.ssr.js';
export { defineFieldSuggestions } from './ssr/search/controllers/field-suggestions/facet/headless-field-suggestions.ssr.js';
export { defineFoldedResultList } from './ssr/search/controllers/folded-result-list/headless-folded-result-list.ssr.js';
export { defineHistoryManager } from './ssr/search/controllers/history-manager/headless-history-manager.ssr.js';
export { defineInstantResults } from './ssr/search/controllers/instant-results/instant-results.ssr.js';
export { definePager } from './ssr/search/controllers/pager/headless-pager.ssr.js';
export { defineQueryError } from './ssr/search/controllers/query-error/headless-query-error.ssr.js';
export { defineQuerySummary } from './ssr/search/controllers/query-summary/headless-query-summary.ssr.js';
export { defineQuickview } from './ssr/search/controllers/quickview/headless-quickview.ssr.js';
export { defineRecentQueriesList } from './ssr/search/controllers/recent-queries-list/headless-recent-queries-list.ssr.js';
export { defineRecentResultsList } from './ssr/search/controllers/recent-results-list/headless-recent-results-list.ssr.js';
export { defineRelevanceInspector } from './ssr/search/controllers/relevance-inspector/headless-relevance-inspector.ssr.js';
export { defineResultList } from './ssr/search/controllers/result-list/headless-result-list.ssr.js';
export { defineResultsPerPage } from './ssr/search/controllers/results-per-page/headless-results-per-page.ssr.js';
export { defineSearchBox } from './ssr/search/controllers/search-box/headless-search-box.ssr.js';
export { defineSearchParameterManager } from './ssr/search/controllers/search-parameter-manager/headless-search-parameter-manager.ssr.js';
export { defineSearchStatus } from './ssr/search/controllers/search-status/headless-search-status.ssr.js';
export { defineSmartSnippet } from './ssr/search/controllers/smart-snippet/headless-smart-snippet.ssr.js';
export { defineSmartSnippetQuestionsList } from './ssr/search/controllers/smart-snippet-questions-list/headless-smart-snippet-questions-list.ssr.js';
export { defineSort } from './ssr/search/controllers/sort/headless-sort.ssr.js';
export { defineStandaloneSearchBox } from './ssr/search/controllers/standalone-search-box/headless-standalone-search-box.ssr.js';
export { buildStaticFilterValue, defineStaticFilter, } from './ssr/search/controllers/static-filter/headless-static-filter.ssr.js';
export { defineTab } from './ssr/search/controllers/tab/headless-tab.ssr.js';
export { defineTabManager } from './ssr/search/controllers/tab-manager/headless-tab-manager.ssr.js';
export { defineExecuteTrigger } from './ssr/search/controllers/triggers/headless-execute-trigger.ssr.js';
export { defineNotifyTrigger } from './ssr/search/controllers/triggers/headless-notify-trigger.ssr.js';
export { defineQueryTrigger } from './ssr/search/controllers/triggers/headless-query-trigger.ssr.js';
export { defineRedirectionTrigger } from './ssr/search/controllers/triggers/headless-redirection-trigger.ssr.js';
export { defineUrlManager } from './ssr/search/controllers/url-manager/headless-url-manager.ssr.js';
export { defineSearchEngine } from './ssr/search/engine/search-engine.ssr.js';
//#endregion
export { getAnalyticsNextApiBaseUrl, getOrganizationEndpoint, } from './api/platform-client.js';
export { deserializeRelativeDate, validateRelativeDate, } from './api/search/date/relative-date.js';
export * from './features/advanced-search-queries/advanced-search-queries-actions-loader.js';
export * from './features/analytics/click-analytics-actions-loader.js';
export * from './features/analytics/generic-analytics-actions-loader.js';
//#endregion
// Analytics Actions
export * from './features/analytics/search-analytics-actions-loader.js';
export * from './features/breadcrumb/breadcrumb-actions-loader.js';
export * from './features/configuration/configuration-actions-loader.js';
export * from './features/configuration/search-configuration-actions-loader.js';
export * from './features/context/context-actions-loader.js';
export * from './features/debug/debug-actions-loader.js';
export * from './features/dictionary-field-context/dictionary-field-context-actions-loader.js';
export * from './features/did-you-mean/did-you-mean-actions-loader.js';
export * from './features/excerpt-length/excerpt-length-actions-loader.js';
export * from './features/facet-options/facet-options-actions-loader.js';
export * from './features/facets/category-facet-set/category-facet-set-actions-loader.js';
export * from './features/facets/facet-set/facet-set-actions-loader.js';
// Selectors
export { baseFacetResponseSelector, facetRequestSelector, facetResponseSelectedValuesSelector, facetResponseSelector, } from './features/facets/facet-set/facet-set-selectors.js';
export * from './features/facets/range-facets/date-facet-set/date-facet-actions-loader.js';
export * from './features/facets/range-facets/numeric-facet-set/numeric-facet-actions-loader.js';
export * from './features/fields/fields-actions-loader.js';
export { DefaultFieldsToInclude, EcommerceDefaultFieldsToInclude, MinimumFieldsToInclude, } from './features/fields/fields-state.js';
export * from './features/folding/folding-actions-loader.js';
export * from './features/generated-answer/generated-answer-actions-loader.js';
export * from './features/history/history-actions-loader.js';
export * from './features/instant-results/instant-results-actions-loader.js';
export * from './features/pagination/pagination-actions-loader.js';
export { currentPageSelector, currentPagesSelector, maxPageSelector, } from './features/pagination/pagination-selectors.js';
export * from './features/pipeline/pipeline-actions-loader.js';
export * from './features/query/query-actions-loader.js';
export * from './features/query-set/query-set-actions-loader.js';
export * from './features/query-suggest/query-suggest-actions-loader.js';
export * from './features/question-answering/question-answering-actions-loader.js';
export * from './features/recent-queries/recent-queries-actions-loader.js';
export * from './features/recent-results/recent-results-actions-loader.js';
export * from './features/result-preview/result-preview-actions-loader.js';
//#region Grouped actions
export { ResultTemplatesHelpers } from './features/result-templates/result-templates-helpers.js';
export { buildResultTemplatesManager } from './features/result-templates/result-templates-manager.js';
export * from './features/search/search-actions-loader.js';
export * from './features/search-hub/search-hub-actions-loader.js';
export { buildSearchParameterSerializer } from './features/search-parameters/search-parameter-serializer.js';
// Types & Helpers
export { buildSSRSearchParameterSerializer } from './features/search-parameters/search-parameter-serializer.ssr.js';
export { buildCriterionExpression, buildDateSortCriterion, buildFieldSortCriterion, buildNoSortCriterion, buildQueryRankingExpressionSortCriterion, buildRelevanceSortCriterion, SortBy, SortOrder, } from './features/sort-criteria/criteria.js';
export { parseCriterionExpression } from './features/sort-criteria/criteria-parser.js';
export * from './features/sort-criteria/sort-criteria-actions-loader.js';
export * from './features/standalone-search-box-set/standalone-search-box-set-actions-loader.js';
export * from './features/static-filter-set/static-filter-set-actions-loader.js';
export * from './features/tab-set/tab-set-actions-loader.js';
export * from './utils/query-expression/query-expression.js';
export { VERSION } from './utils/version.js';
