/**
 * Event Trigger System
 *
 * Defines trigger types and conditions for automated agent responses.
 * Supports cooldown to prevent spam.
 */
import { EventEmitter } from 'events';
export type TriggerType = 'screen_change' | 'file_change' | 'time' | 'webhook' | 'custom';
export interface TriggerAction {
    type: 'notify' | 'execute' | 'agent_message';
    target: string;
    args?: Record<string, unknown>;
}
export interface Trigger {
    id: string;
    name: string;
    type: TriggerType;
    condition: string;
    action: TriggerAction;
    cooldownMs: number;
    enabled: boolean;
    createdAt: Date;
    lastFiredAt?: Date;
    fireCount: number;
}
export interface TriggerEvent {
    triggerId: string;
    type: TriggerType;
    data: Record<string, unknown>;
    timestamp: Date;
}
export declare class EventTriggerManager extends EventEmitter {
    private triggers;
    private cooldowns;
    /**
     * Add a trigger
     */
    addTrigger(trigger: Trigger): void;
    /**
     * Remove a trigger
     */
    removeTrigger(id: string): boolean;
    /**
     * Get a trigger by ID
     */
    getTrigger(id: string): Trigger | undefined;
    /**
     * List all triggers
     */
    listTriggers(type?: TriggerType): Trigger[];
    /**
     * Evaluate an event against all triggers
     */
    evaluate(event: TriggerEvent): Trigger[];
    /**
     * Check if a trigger is on cooldown
     */
    private isOnCooldown;
    /**
     * Evaluate a condition string against event data
     */
    private evaluateCondition;
    /**
     * Fire a trigger
     */
    private fireTrigger;
    /**
     * Enable/disable a trigger
     */
    setEnabled(id: string, enabled: boolean): boolean;
}
export declare function getEventTriggerManager(): EventTriggerManager;
export declare function resetEventTriggerManager(): void;
