import type { ElementInteractionsOptions, LabeledEvent, Trigger } from '@amplitude/analytics-core'; import type { ElementBasedTimestampedEvent, ElementBasedEvent } from '../helpers'; import type { DataExtractor } from '../data-extractor'; export declare const groupLabeledEventIdsByEventType: (labeledEvents: LabeledEvent[] | null | undefined) => Record>; export declare const createLabeledEventToTriggerMap: (triggers: Trigger[]) => Map; /** * Matches an event to labeled events based on the event's properties. * The logic matches exactly what is supported by the query backend. * TODO: later pre-filter the labeled events based on URL first * * @param event - The event to match against labeled events * @param labeledEvents - Array of labeled events to match against * @returns Array of matching labeled events */ export declare const matchEventToLabeledEvents: (event: ElementBasedTimestampedEvent, labeledEvents: LabeledEvent[]) => LabeledEvent[]; export declare const matchLabeledEventsToTriggers: (labeledEvents: LabeledEvent[], leToTriggerMap: Map) => Trigger[]; export declare class TriggerEvaluator { private groupedLabeledEvents; private labeledEventToTriggerMap; private dataExtractor; private options; constructor(groupedLabeledEvents: ReturnType, labeledEventToTriggerMap: ReturnType, dataExtractor: DataExtractor, options: ElementInteractionsOptions); evaluate(event: ElementBasedTimestampedEvent): ElementBasedTimestampedEvent; update(groupedLabeledEvents: ReturnType, labeledEventToTriggerMap: ReturnType, options: ElementInteractionsOptions): void; } export declare const createTriggerEvaluator: (groupedLabeledEvents: ReturnType, labeledEventToTriggerMap: ReturnType, dataExtractor: DataExtractor, options: ElementInteractionsOptions) => TriggerEvaluator; //# sourceMappingURL=triggers.d.ts.map