/**
 * Observer Coordinator
 *
 * Wires ScreenObserver + FileWatcher + TriggerRegistry together.
 * Aggregates events and deduplicates.
 */
import { EventEmitter } from 'events';
import { ScreenObserver } from './screen-observer.js';
import { EventTriggerManager } from './event-trigger.js';
import { TriggerRegistry } from './trigger-registry.js';
export interface CoordinatorConfig {
    /** Enable screen observation */
    enableScreenObserver: boolean;
    /** Enable file watching */
    enableFileWatcher: boolean;
    /** Screen observation interval (ms) */
    screenIntervalMs: number;
    /** Deduplication window (ms) */
    deduplicationWindowMs: number;
}
export declare class ObserverCoordinator extends EventEmitter {
    private config;
    private screenObserver;
    private triggerManager;
    private triggerRegistry;
    private recentEvents;
    private running;
    constructor(screenObserver: ScreenObserver, triggerManager: EventTriggerManager, config?: Partial<CoordinatorConfig>);
    /**
     * Start all observers
     */
    start(): Promise<void>;
    /**
     * Stop all observers
     */
    stop(): Promise<void>;
    /**
     * Handle screen change event
     */
    private handleScreenChange;
    /**
     * Handle file change event (called externally)
     */
    handleFileChange(filePath: string, changeType: 'add' | 'change' | 'unlink'): void;
    /**
     * Handle webhook event
     */
    handleWebhook(data: Record<string, unknown>): void;
    /**
     * Check for duplicate events within deduplication window
     */
    private isDuplicate;
    /**
     * Get registry for CRUD operations
     */
    getRegistry(): TriggerRegistry;
    isRunning(): boolean;
}
