import type { CommerceEngine } from '../../../../../app/commerce-engine/commerce-engine.js'; import { specificFacetSearchStateSelector } from '../../../../../features/facets/facet-search-set/specific/specific-facet-search-state-selector.js'; import { type CoreCommerceFacet, type CoreCommerceFacetOptions, type CoreCommerceFacetState, type FacetControllerType, type FacetValueRequest, type RegularFacetValue } from '../headless-core-commerce-facet.js'; import type { SearchableFacetOptions } from '../searchable/headless-commerce-searchable-facet.js'; import { type RegularFacetSearch, type RegularFacetSearchState } from './headless-commerce-regular-facet-search.js'; /** * @group Sub-controllers * @category RegularFacet */ export type RegularFacetOptions = Omit & SearchableFacetOptions; /** * @group Sub-controllers * @category RegularFacet */ export type RegularFacetState = Omit, 'type'> & { facetSearch: RegularFacetSearchState; type: 'regular'; }; /** * The `RegularFacet` sub-controller offers a high-level programming interface for implementing a regular commerce * facet UI component. * * @group Sub-controllers * @category RegularFacet */ export type RegularFacet = CoreCommerceFacet & { facetSearch: Omit; state: RegularFacetState; } & FacetControllerType<'regular'>; /** * @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 `RegularFacet` sub-controller instances through the state of a `FacetGenerator` * sub-controller. * * @param engine - The headless commerce engine. * @param options - The `RegularFacet` options used internally. * @returns A `RegularFacet` sub-controller instance. * */ export declare function buildCommerceRegularFacet(engine: CommerceEngine, options: RegularFacetOptions): RegularFacet; export declare const getRegularFacetState: (coreState: CoreCommerceFacetState, facetSearchSelector: ReturnType) => RegularFacetState;