import { Result } from '../../../api/search/search/result.js';
import { InsightEngine } from '../../../app/insight-engine/insight-engine.js';
import { 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;
