import type { FileCache } from '../cache/file/mixin.ts'; import type { OpsRegistry } from '../ops/registry.ts'; import type { Resource } from '../resource/base.ts'; import { ConsistencyPolicy } from '../types.ts'; import type { MountEntry } from './mount/mount.ts'; import type { Namespace } from './mount/namespace/namespace.ts'; /** * Keep the local view honest against backend truth. * * The single reconcile point every read path shares. Under ALWAYS a backend * re-stat classifies a path as fresh, stale (fingerprint mismatch), gone * (deletion), or unknown (no fingerprint to compare). One deletion signal * feeds both consumers with separate reactions: the file cache evicts and the * namespace GCs any orphaned attribute overlay. * * Three read paths call in: the dispatcher's cached-read gate * (mayServeCached) and its main-op catch (onOpMissing) for cross-mount and * programmatic reads, and the mount registry's per-command reconcile * (reconcileRead) for single-mount shell reads. The re-stat goes through the * ops registry (not mount.executeOp, whose op set omits stat). Reconcile * state follows each consumer's store (RAM local, Redis shared across * runtimes), so this is a thin coordinator holding references, not config. */ export declare class Reconciler { private readonly cache; private readonly namespace; private readonly opsRegistry; private readonly consistency; constructor(cache: FileCache & Resource, namespace: Namespace, opsRegistry: OpsRegistry, consistency: ConsistencyPolicy); private probe; mayServeCached(mount: MountEntry, path: string): Promise; reconcileRead(mount: MountEntry, path: string): Promise; onOpMissing(opName: string, path: string, err: unknown): Promise; private onMissing; } //# sourceMappingURL=reconcile.d.ts.map