/** * Store-backed default {@link CoordinationProvider}. * * Maps the five coordination-port methods onto today's `_meta/schema-fence` * store ops so that, with no `by-*` provider injected, the fence service * reproduces its current store-polling behavior byte-for-byte. The `observe*` * methods are poll-emit (the legacy {@link FenceWatcher} model); `by-tabs` / * `by-peer` override them with real-time push. * * @module */ import type { NoydbStore } from '../../kernel/types.js'; import type { Unsubscribe } from '../../port/with/write-hooks.js'; import type { CoordinationProvider, FenceState, WriterPresence } from '../../port/by/types.js'; export declare class StoreCoordinationProvider implements CoordinationProvider { #private; constructor(store: NoydbStore, opts?: { pollIntervalMs?: number; }); setFence(vault: string, fence: FenceState): Promise; readFence(vault: string): Promise; observeFence(vault: string, onChange: (f: FenceState) => void): Unsubscribe; reportPresence(vault: string, p: WriterPresence): Promise; observePresence(vault: string, onChange: (writers: readonly WriterPresence[]) => void): Unsubscribe; reachableWriters(vault: string, o: { staleMs: number; now: number; }): Promise; }