import { CommerceEngine } from '../../../../../app/commerce-engine/commerce-engine.js';
import { specificFacetSearchStateSelector } from '../../../../../features/facets/facet-search-set/specific/specific-facet-search-state-selector.js';
import { CoreCommerceFacet, CoreCommerceFacetOptions, CoreCommerceFacetState, FacetControllerType, FacetValueRequest, RegularFacetValue } from '../headless-core-commerce-facet.js';
import { SearchableFacetOptions } from '../searchable/headless-commerce-searchable-facet.js';
import { RegularFacetSearch, RegularFacetSearchState } from './headless-commerce-regular-facet-search.js';
/**
 * @group Sub-controllers
 * @category RegularFacet
 */
export type RegularFacetOptions = Omit<CoreCommerceFacetOptions, 'toggleSelectActionCreator' | 'toggleExcludeActionCreator'> & SearchableFacetOptions;
/**
 * @group Sub-controllers
 * @category RegularFacet
 */
export type RegularFacetState = Omit<CoreCommerceFacetState<RegularFacetValue>, '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<FacetValueRequest, RegularFacetValue> & {
    facetSearch: Omit<RegularFacetSearch, 'state'>;
    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<RegularFacetValue>, facetSearchSelector: ReturnType<typeof specificFacetSearchStateSelector>) => RegularFacetState;
