import type { CommerceEngine } from '../../../../app/commerce-engine/commerce-engine.js'; import { stateKey } from '../../../../app/state-key.js'; import type { Parameters } from '../../../../features/commerce/parameters/parameters-actions.js'; import type { Serializer } from '../../../../features/commerce/parameters/parameters-serializer.js'; import { type UrlManagerProps as BaseUrlManagerProps, type UrlManager, type UrlManagerInitialState, type UrlManagerState } from '../../../url-manager/headless-url-manager.js'; import type { ParameterManager, ParameterManagerProps } from '../parameter-manager/headless-core-parameter-manager.js'; export type { BaseUrlManagerProps, UrlManager, UrlManagerInitialState, UrlManagerState, }; export interface UrlManagerProps extends BaseUrlManagerProps { /** * Whether the controller's state should exclude the default parameters returned by the Commerce API, and only include * the parameters that were set explicitly set through dispatched actions. * * Defaults to `false`. */ excludeDefaultParameters?: boolean; } interface CoreUrlManagerProps extends UrlManagerProps { requestIdSelector: (state: CommerceEngine[typeof stateKey]) => string; parameterManagerBuilder: (engine: CommerceEngine, props: ParameterManagerProps) => ParameterManager; serializer: Serializer; } /** * @internal * Creates a `UrlManager` sub-controller instance. * * @param engine - The headless commerce engine. * @param props - The configurable `UrlManager` properties. * @returns A `UrlManager` sub-controller instance. */ export declare function buildCoreUrlManager(engine: CommerceEngine, props: CoreUrlManagerProps): UrlManager;