"""fs_watcher — shared filesystem watcher + event broker for Recoil pipelines.

Used by both the legacy review_server.py (Phase 2 wiring) and the Phase 4
new engine server. Neither engine owns it — both import from here to prevent
dual-watcher drift.

Public API:
    FsWatcher    — wraps watchdog.Observer, debounces, emits events
    EventBroker  — in-process pub/sub with ring-buffered history
    FsEvent      — the canonical event shape
    FsEventType  — the six canonical event types
"""

from .events import FsEvent, FsEventType
from .pubsub import EventBroker
from .watcher import DEBOUNCE_MS, EXCLUDED_PATH_PARTS, FsWatcher, HEARTBEAT_SECONDS

__all__ = [
    "FsWatcher",
    "EventBroker",
    "FsEvent",
    "FsEventType",
    "DEBOUNCE_MS",
    "HEARTBEAT_SECONDS",
    "EXCLUDED_PATH_PARTS",
]
