import type { SearchEngine } from '../../app/search-engine/search-engine.js'; import { type Quickview as CoreQuickview, type QuickviewState as CoreQuickviewState, type QuickviewOptions, type QuickviewProps } from '../core/quickview/headless-core-quickview.js'; export type { CoreQuickview, CoreQuickviewState, QuickviewOptions, QuickviewProps, }; /** * A scoped and simplified part of the headless state that is relevant to the `Quickview` controller. * * @group Controllers * @category Quickview */ export interface QuickviewState extends CoreQuickviewState { /** * The number of available results for the current result set. * * Can be used for quickview pagination purpose. */ totalResults: number; /** * The position of the result in the current result set. * * Can be used for quickview pagination purpose. */ currentResult: number; } /** * The `Quickview` controller provides an interface for triggering desirable side effects, such as logging UA events to the Coveo Platform, when a user interacts with a quickview. * * Example: [quickview.fn.tsx](https://github.com/coveo/ui-kit/blob/main/samples/headless/search-react/src/components/quickview/quickview.fn.tsx) * * @group Controllers * @category Quickview */ export interface Quickview extends CoreQuickview { state: QuickviewState; } /** * Creates a `Quickview` controller instance. * * @param engine - The headless engine. * @param props - The configurable `Quickview` properties. * @returns A `Quickview` controller instance. * * @group Controllers * @category Quickview */ export declare function buildQuickview(engine: SearchEngine, props: QuickviewProps): Quickview;