import type { CommerceEngine } from '../../../../../app/commerce-engine/commerce-engine.js'; import type { NumericFacetResponse } from '../../../../../features/commerce/facets/facet-set/interfaces/response.js'; import { type CoreCommerceFacet, type CoreCommerceFacetOptions, type CoreCommerceFacetState, type FacetControllerType, type NumericFacetValue, type NumericRangeRequest } from '../headless-core-commerce-facet.js'; export type { NumericFacetValue }; export type NumericFacetOptions = Omit; /** * The state of the `NumericFacet` sub-controller. * * @group Sub-controllers * @category NumericFacet */ export type NumericFacetState = Omit, 'type'> & { /** * The domain of the numeric facet. */ domain?: NumericFacetDomain; manualRange?: NumericRangeRequest; type: 'numericalRange'; }; type NumericFacetDomain = { /** * The minimum value that the continuous range can have. * * No products will be returned if the `start` property of a selected range is set to a value lower than this. */ min: number; /** * The maximum value that the continuous range can have. * * No products will be returned if the `end` property of a selected range is set to a value higher than this. */ max: number; }; /** * The `NumericFacet` sub-controller offers a high-level programming interface for implementing numeric commerce * facet UI component. * * @group Sub-controllers * @category NumericFacet */ export type NumericFacet = CoreCommerceFacet & { /** * Replaces the current range values with the specified ones. * * @param ranges - The new ranges to set. */ setRanges: (ranges: NumericRangeRequest[]) => void; /** * The state of the `NumericFacet` sub-controller. */ state: NumericFacetState; } & FacetControllerType<'numericalRange'>; /** * @internal * * **Important:** This initializer is meant for internal use by headless only. * As an implementer, you must not import or use this initializer directly in your code. * You will instead interact with `NumericFacet` sub-controller instances through the state of a `FacetGenerator` * sub-controller. * * @param engine - The headless commerce engine. * @param options - The `NumericFacet` options used internally. * @returns A `NumericFacet` sub-controller instance. */ export declare function buildCommerceNumericFacet(engine: CommerceEngine, options: NumericFacetOptions): NumericFacet; export declare const getNumericFacetState: (coreState: CoreCommerceFacetState, facetResponseSelector: NumericFacetResponse | undefined, manualFacetRangeSelector: NumericRangeRequest | undefined) => NumericFacetState;