import type { Result } from '../../../api/search/search/result.js'; import type { InsightEngine } from '../../../app/insight-engine/insight-engine.js'; import type { Controller } from '../../controller/headless-controller.js'; export interface QuickviewProps { /** * The options for the insight `Quickview` controller. */ options: QuickviewOptions; } export interface QuickviewOptions { /** * The result to retrieve a quickview for. */ result: Result; /** * The maximum preview size to retrieve, in bytes. By default, the full preview is retrieved. */ maximumPreviewSize?: number; } /** * The `Quickview` controller provides a way to fetch and display a preview of a result. * * @group Controllers * @category Quickview */ export interface Quickview extends Controller { /** * Updates the `contentURL` state property with the correct URL. */ fetchResultContent(): void; /** * The state for the `Quickview` controller. */ state: QuickviewState; } /** * The state of the `Quickview` controller. * * @group Controllers * @category Quickview */ export interface QuickviewState { /** * `true` if the configured result has a preview, and `false` otherwise. */ resultHasPreview: boolean; /** * `true` if content is being fetched, and `false` otherwise. */ isLoading: boolean; /** * The `src` path to use if rendering the quickview in an iframe. */ contentURL?: string; } /** * Creates an insight `Quickview` controller instance. * @param engine - The insight engine. * @param props - The configurable `Quickview` properties. * @returns A `Quickview` controller instance. * * @group Controllers * @category Quickview */ export declare function buildQuickview(engine: InsightEngine, props: QuickviewProps): Quickview;