import type { GeneratedAnswerCitation } from '../../../api/generated-answer/generated-answer-event-payload.js'; import type { CoreEngine } from '../../../app/engine.js'; import type { CustomAction } from '../../../features/analytics/analytics-utils.js'; import { type InteractiveResultCore, type InteractiveResultCoreOptions, type InteractiveResultCoreProps } from '../../core/interactive-result/headless-core-interactive-result.js'; export interface InteractiveCitationOptions extends InteractiveResultCoreOptions { /** * The generated answer citation. */ citation: GeneratedAnswerCitation; /** * The unique identifier of the generated answer associated with the citation. */ answerId?: string; } export interface InteractiveCitationProps extends InteractiveResultCoreProps { /** * The options for the `InteractiveCitation` controller. */ options: InteractiveCitationOptions; } /** * The `InteractiveCitation` controller provides an interface for triggering desirable side effects, such as logging UA events to the Coveo Platform, when a user selects a generated answer citation. * * @group Controllers * @category InteractiveCitation */ export interface InteractiveCitation extends InteractiveResultCore { } interface InteractiveCitationAnalyticsClient { logOpenGeneratedAnswerSource(citationId: string, answerId?: string): CustomAction; } /** * Creates a core `InteractiveCitation` controller instance. * * @param engine - The headless engine. * @param props - The configurable `InteractiveCitation` properties. * @returns An `InteractiveCitation` controller instance. */ export declare function buildInteractiveCitationCore(engine: CoreEngine, analyticsClient: InteractiveCitationAnalyticsClient, props: InteractiveCitationProps): InteractiveCitation; export {};