/** * THE RUNTIME DEGRADATION PREDICATE. * * Did the FALLBACK poll discover a delivery the marker never announced? * * This deliberately consults NO marker-evidence flag, and that is the whole * point. Three attempts got this wrong, each closing a route while leaving the * bad state reachable: * 1. `!filename` counted as proof, so one anonymous fs.watch event suppressed * the announcement forever. * 2. The proof latched for the process lifetime, so a marker that worked once * masked a writer that died later. * 3. Even consumed per-window, a marker for message A masked an UNMARKED * message B arriving in the same window. * * All three are the same error: treating "a marker fired at some point" as * evidence about a DIFFERENT delivery. The fix is to stop asking that question. * Watcher callbacks invoke check() IMMEDIATELY, so a marked delivery has * already moved prevUnread by the time this tick runs. Therefore an unread * count that rises ACROSS the fallback's own check() is, by construction, a * delivery no callback observed — which is exactly the degradation, per * delivery, with no state to get stale. */ export declare function fallbackObservedMissedDelivery(before: number | null, after: number | null): boolean; /** * The fallback tick, extracted so tests exercise the REAL closure rather than * a re-implementation of it. The predicate above is trivially correct; what * can silently break is THIS wiring — `before` must be captured BEFORE the * tick's own check(), or the comparison is post-state against itself and the * degraded announcement can never fire again. That ordering lives here and * only here, so the call-shape controls in * tests/marker-evidence-negative-controls.test.ts drive this exact function. */ export declare function makeFallbackTick(deps: { readPrevUnread: () => number | null; check: () => void; onMissedDelivery: () => void; }): () => void; export declare function run(argv: string[]): Promise; //# sourceMappingURL=watch.d.ts.map