import type { SpotlightContent } from '../../../../api/commerce/common/result.js'; import type { CommerceEngine, CommerceEngineState } from '../../../../app/commerce-engine/commerce-engine.js'; import type { InteractiveResultCore, InteractiveResultCoreProps as InteractiveResultHeadlessCoreProps, InteractiveResultCoreOptions as InteractiveSpotlightContentCoreOptions } from '../../../core/interactive-result/headless-core-interactive-result.js'; export interface InteractiveSpotlightContentOptions extends InteractiveSpotlightContentCoreOptions { /** * The spotlight content to log analytics for. */ spotlightContent: SpotlightContent; } export interface InteractiveSpotlightContentCoreProps extends InteractiveResultHeadlessCoreProps { /** * The options for the `InteractiveSpotlightContent` sub-controller. */ options: InteractiveSpotlightContentOptions; /** * The selector to fetch the response ID from the state. */ responseIdSelector: (state: CommerceEngineState) => string; } export type InteractiveSpotlightContentProps = Omit; /** * The `InteractiveSpotlightContent` sub-controller provides an interface for handling long presses, multiple clicks, etc. to ensure * analytics events are logged properly when a user selects a spotlight content item. */ export interface InteractiveSpotlightContent extends InteractiveResultCore { warningMessage?: string; } /** * Creates an `InteractiveSpotlightContent` sub-controller instance. * * @param engine - The headless commerce engine. * @param props - The configurable `InteractiveSpotlightContent` properties. * @returns An `InteractiveSpotlightContent` sub-controller instance. * * @group Buildable controllers * @category CoreInteractiveSpotlightContent */ export declare function buildCoreInteractiveSpotlightContent(engine: CommerceEngine, props: InteractiveSpotlightContentCoreProps): InteractiveSpotlightContent;