import type { SearchEngine } from '../../app/search-engine/search-engine.js';
import type { FunctionExecutionTrigger } from '../../features/triggers/triggers-state.js';
import { type Controller } from '../controller/headless-controller.js';
/**
 * The `ExecuteTrigger` controller handles Execute triggers from the query response. An [Execute trigger](https://docs.coveo.com/en/3413#execute) query pipeline rule lets you define a custom JavaScript function to be executed in the frontend when a certain condition is met.
 *
 * Examples:
 * - [execute-trigger.tsx](https://github.com/coveo/ui-kit/blob/main/packages/samples/headless-react/src/components/triggers/execute-trigger.tsx)
 * - [execute-trigger.class.tsx](https://github.com/coveo/ui-kit/blob/main/packages/samples/headless-react/src/components/triggers/execute-trigger.class.tsx)
 *
 * @group Controllers
 * @category ExecuteTrigger
 */
export interface ExecuteTrigger extends Controller {
    /**
     * The state of the `ExecuteTrigger` controller.
     */
    state: ExecuteTriggerState;
}
/**
 * A scoped and simplified part of the headless state that is relevant to the `ExecuteTrigger` controller.
 *
 * @group Controllers
 * @category ExecuteTrigger
 */
export interface ExecuteTriggerState {
    /**
     * The functions to be executed.
     */
    executions: FunctionExecutionTrigger[];
}
/**
 * Creates a `ExecuteTrigger` controller instance. An execute trigger is configured in the Administration console,
 * and used to execute a function in the browser when a certain condition is met.
 *
 *
 * @param engine - The headless engine.
 * @returns A `RedirectionTrigger` controller instance.
 *
 * @group Controllers
 * @category ExecuteTrigger
 * */
export declare function buildExecuteTrigger(engine: SearchEngine): ExecuteTrigger;
