import type { ContentProof } from './history-content-proof.js'; /** The server admits a page and returns precise identity rejections. There is * no recursive split: transient conflicts/auth/network failures cost one request. * Rejected writes are never ACKed and retain their durable local retry source. */ export interface SourceRecovery { signal: AbortSignal; read(item: T, signal: AbortSignal): Promise; recovered(bindings: Record): Promise; failed(error: unknown): void; } export declare class ProjectionUpload { private recoveryVersion; private recoveryFlight; private epoch; private readonly attempted; private readonly rejected; clear(): void; page(items: T[], send: (items: T[], signal: AbortSignal) => Promise, signal: AbortSignal, recovery?: SourceRecovery): Promise<{ accepted: number; rejected: number; sourceBindings?: Record; }>; private scheduleRecovery; } //# sourceMappingURL=projection-upload.d.ts.map