import type { CoreEngine } from '../../../app/engine.js'; import type { InsightAction, LegacySearchAction } from '../../../features/analytics/analytics-utils.js'; import { type Controller } from '../../controller/headless-controller.js'; /** * The `NotifyTrigger` controller handles notify triggers. A [Notify trigger](https://docs.coveo.com/en/3413#notify) query pipeline rule lets you define a message to be displayed to the end user when a certain condition is met. * * Example: [notify-trigger.fn.tsx](https://github.com/coveo/ui-kit/blob/main/samples/headless/search-react/src/components/triggers/notify-trigger.fn.tsx) * * @group Controllers * @category NotifyTrigger */ export interface NotifyTrigger extends Controller { /** * The state of the `NotifyTrigger` controller. */ state: NotifyTriggerState; } /** * A scoped and simplified part of the headless state that is relevant to the `NotifyTrigger` controller. * * @group Controllers * @category NotifyTrigger */ export interface NotifyTriggerState { /** * The notifications to display to the user after receiving notification triggers. */ notifications: string[]; } interface NotifyTriggerProps { options: NotifyTriggerOptions; } interface NotifyTriggerOptions { logNotifyTriggerActionCreator: () => InsightAction | LegacySearchAction; } /** * Creates a core `NotifyTrigger` controller instance. * * @param engine - The headless engine. * @returns A `NotifyTrigger` controller instance. * * @group Controllers * @category NotifyTrigger */ export declare function buildCoreNotifyTrigger(engine: CoreEngine, props: NotifyTriggerProps): NotifyTrigger; export {};