import type { CommerceEngine } from '../../../../app/commerce-engine/commerce-engine.js'; import type { AnyFacetValueResponse, BaseFacetValue } from '../../../../features/commerce/facets/facet-set/interfaces/response.js'; import type { BreadcrumbValue, CoreBreadcrumbManager, DeselectableValue } from '../../../breadcrumb-manager/headless-breadcrumb-manager.js'; import type { CoreCommerceFacetOptions } from '../facets/headless-core-commerce-facet.js'; export type { BreadcrumbValue, DeselectableValue }; /** * Represents a generic breadcrumb type. * * @group Sub-controllers * @category BreadcrumbManager */ export interface Breadcrumb { /** * The ID of the underlying facet. */ facetId: string; /** * The display name of the underlying facet. */ facetDisplayName: string; /** * The field on which the underlying facet is configured. */ field: string; /** * The type of the underlying facet. */ type: string; /** * The list of facet values currently selected. */ values: BreadcrumbValue[]; } export type CoreBreadcrumbManagerOptions = Pick; /** * A scoped and simplified part of the headless state that is relevant to the `BreadcrumbManager` sub-controller. * * @group Sub-controllers * @category BreadcrumbManager */ export interface BreadcrumbManagerState { /** * The list of facet breadcrumbs. */ facetBreadcrumbs: Breadcrumb[]; /** * Whether any breadcrumbs are available (that is, if any facet values are currently active). */ hasBreadcrumbs: boolean; } /** * The `BreadcrumbManager` sub-controller manages a summary of the currently active facet filters. */ export type BreadcrumbManager = Omit & { /** * The state of the `BreadcrumbManager` sub-controller. */ state: BreadcrumbManagerState; }; /** * @internal * Creates a `BreadcrumbManager` sub-controller. * * @param engine - The headless commerce engine. * @param options - The `BreadcrumbManager` options used internally. * @returns A `BreadcrumbManager` sub-controller. **/ export declare function buildCoreBreadcrumbManager(engine: CommerceEngine, options: CoreBreadcrumbManagerOptions): BreadcrumbManager;