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<Value extends BaseFacetValue> {
    /**
     * 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<Value>[];
}
export type CoreBreadcrumbManagerOptions = Pick<CoreCommerceFacetOptions, 'facetResponseSelector' | 'fetchProductsActionCreator'>;
/**
 * 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<AnyFacetValueResponse>[];
    /**
     * Whether any breadcrumbs are available (i.e., 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<CoreBreadcrumbManager, 'deselectBreadcrumb' | 'state'> & {
    /**
     * 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;
