import { EventEmitter } from 'node:events'; import type { SignalSourceType, Observation, FileSystemSignalConfig, WebhookSignalConfig, ScheduleSignalConfig } from './types.js'; export interface SignalAdapter { readonly type: SignalSourceType; start(emit: (obs: Observation) => void): Promise; stop(): Promise; } export declare class FileWatcherAdapter implements SignalAdapter { readonly type: SignalSourceType; private watchers; private config; private debounceMs; private pendingChanges; private debounceTimer; constructor(config: FileSystemSignalConfig, debounceMs?: number); start(emit: (obs: Observation) => void): Promise; stop(): Promise; private flushPendingChanges; } export declare class WebhookAdapter implements SignalAdapter { readonly type: SignalSourceType; private server; private config; constructor(config: WebhookSignalConfig); start(emit: (obs: Observation) => void): Promise; stop(): Promise; } export declare class ScheduleAdapter implements SignalAdapter { readonly type: SignalSourceType; private timer; private tickCount; private config; constructor(config: ScheduleSignalConfig); start(emit: (obs: Observation) => void): Promise; stop(): Promise; } export declare class Observer extends EventEmitter { private adapters; private queue; private running; private waitResolve; register(adapter: SignalAdapter): void; start(): Promise; stop(): Promise; dequeue(): Promise; get queueDepth(): number; get isRunning(): boolean; }