import type { TriggerFilter } from "shared";
import type { StoredEvent } from "./event-log.js";
/**
 * Dispatch a newly stored event against all active triggers across all agents.
 * Called by event-watcher.ts after each event is appended.
 *
 * Filter matching runs synchronously, but executeAgent() is fire-and-forget
 * so the event watcher polling loop is not blocked.
 */
export declare function dispatchEvent(event: StoredEvent): void;
/**
 * Check whether a stored event matches a trigger filter.
 * All specified fields must match (AND logic).
 * Unspecified fields (undefined/empty) are treated as "match any".
 */
export declare function matchesFilter(event: StoredEvent, filter: TriggerFilter): boolean;
/**
 * Interpolate {{event.*}} placeholders in a prompt template.
 *
 * Supported placeholders:
 *   {{event.source}}              — connection alias
 *   {{event.eventType}}           — event type string
 *   {{event.id}}                  — event ID number
 *   {{event.receivedAt}}          — ISO-8601 timestamp
 *   {{event.data}}                — full JSON payload
 *   {{event.data.field.path}}     — dot-notation into data
 *
 * If template is empty, generates a default prompt with full event info.
 */
export declare function interpolatePrompt(template: string, event: StoredEvent): string;
/**
 * Test a filter against a list of stored events.
 * Returns the events that match, useful for previewing trigger behavior.
 */
export declare function backtestFilter(events: StoredEvent[], filter: TriggerFilter): StoredEvent[];
//# sourceMappingURL=trigger-dispatcher.d.ts.map