import type { StateFromReducersMapObject } from '@reduxjs/toolkit';
import type { ConfigurationState } from '../../features/commerce/configuration/configuration-state.js';
import type { CommerceAppState } from '../../state/commerce-app-state.js';
import type { CommerceThunkExtraArguments } from '../commerce-thunk-extra-arguments.js';
import { type CoreEngineNext, type CoreState, type ExternalEngineOptions } from '../engine.js';
import { type CommerceEngineConfiguration } from './commerce-engine-configuration.js';
export type { CommerceEngineConfiguration };
declare const commerceEngineReducers: {
    productListing: import("redux").Reducer<import("../../features/commerce/product-listing/product-listing-state.js").ProductListingState> & {
        getInitialState: () => import("../../features/commerce/product-listing/product-listing-state.js").ProductListingState;
    };
    recommendations: import("redux").Reducer<import("../../features/commerce/recommendations/recommendations-state.js").RecommendationsState> & {
        getInitialState: () => import("../../features/commerce/recommendations/recommendations-state.js").RecommendationsState;
    };
    commerceSearch: import("redux").Reducer<import("../../features/commerce/search/search-state.js").CommerceSearchState> & {
        getInitialState: () => import("../../features/commerce/search/search-state.js").CommerceSearchState;
    };
    commercePagination: import("redux").Reducer<import("../../features/commerce/pagination/pagination-state.js").CommercePaginationState> & {
        getInitialState: () => import("../../features/commerce/pagination/pagination-state.js").CommercePaginationState;
    };
    commerceSort: import("redux").Reducer<import("../../features/commerce/sort/sort-state.js").CommerceSortState> & {
        getInitialState: () => import("../../features/commerce/sort/sort-state.js").CommerceSortState;
    };
    facetOrder: import("redux").Reducer<import("../../features/facets/facet-order/facet-order-state.js").FacetOrderState> & {
        getInitialState: () => import("../../features/facets/facet-order/facet-order-state.js").FacetOrderState;
    };
    fieldSuggestionsOrder: import("redux").Reducer<import("../../features/commerce/facets/field-suggestions-order/field-suggestions-order-state.js").FieldSuggestionsOrderState> & {
        getInitialState: () => import("../../features/commerce/facets/field-suggestions-order/field-suggestions-order-state.js").FieldSuggestionsOrderState;
    };
    facetSearchSet: import("redux").Reducer<import("../../features/facets/facet-search-set/specific/specific-facet-search-set-state.js").SpecificFacetSearchSetState> & {
        getInitialState: () => import("../../features/facets/facet-search-set/specific/specific-facet-search-set-state.js").SpecificFacetSearchSetState;
    };
    categoryFacetSearchSet: import("redux").Reducer<import("../../features/facets/facet-search-set/category/category-facet-search-set-state.js").CategoryFacetSearchSetState> & {
        getInitialState: () => import("../../features/facets/facet-search-set/category/category-facet-search-set-state.js").CategoryFacetSearchSetState;
    };
    commerceFacetSet: import("redux").Reducer<import("../../features/commerce/facets/facet-set/facet-set-state.js").CommerceFacetSetState> & {
        getInitialState: () => import("../../features/commerce/facets/facet-set/facet-set-state.js").CommerceFacetSetState;
    };
    manualNumericFacetSet: import("redux").Reducer<import("../../features/commerce/facets/numeric-facet/manual-numeric-facet-state.js").ManualNumericFacetSetState> & {
        getInitialState: () => import("../../features/commerce/facets/numeric-facet/manual-numeric-facet-state.js").ManualNumericFacetSetState;
    };
    commerceContext: import("redux").Reducer<import("../../features/commerce/context/context-state.js").CommerceContextState> & {
        getInitialState: () => import("../../features/commerce/context/context-state.js").CommerceContextState;
    };
    commerceQuery: import("redux").Reducer<import("../../features/commerce/query/query-state.js").CommerceQueryState> & {
        getInitialState: () => import("../../features/commerce/query/query-state.js").CommerceQueryState;
    };
    cart: import("redux").Reducer<import("../../features/commerce/context/cart/cart-state.js").CartState> & {
        getInitialState: () => import("../../features/commerce/context/cart/cart-state.js").CartState;
    };
    didYouMean: import("redux").Reducer<import("../../features/commerce/did-you-mean/did-you-mean-state.js").DidYouMeanState> & {
        getInitialState: () => import("../../features/commerce/did-you-mean/did-you-mean-state.js").DidYouMeanState;
    };
    triggers: import("redux").Reducer<import("../../features/triggers/triggers-state.js").TriggerState> & {
        getInitialState: () => import("../../features/triggers/triggers-state.js").TriggerState;
    };
};
type CommerceEngineReducers = typeof commerceEngineReducers;
export type CommerceEngineState = StateFromReducersMapObject<CommerceEngineReducers> & Partial<CommerceAppState>;
/**
 * The engine for powering commerce experiences.
 *
 * @group Engine
 */
export interface CommerceEngine<State extends object = {}> extends CoreEngineNext<State & CoreState<ConfigurationState> & CommerceEngineState, CommerceThunkExtraArguments, ConfigurationState> {
}
/**
 * The commerce engine options.
 *
 * @group Engine
 */
export interface CommerceEngineOptions extends ExternalEngineOptions<CommerceEngineState> {
    /**
     * The commerce engine configuration options.
     */
    configuration: CommerceEngineConfiguration;
}
/**
 * Creates a commerce engine instance.
 *
 * @param options - The commerce engine options.
 * @returns A commerce engine instance.
 *
 * @group Engine
 */
export declare function buildCommerceEngine(options: CommerceEngineOptions): CommerceEngine;
