import type { CatchupJobResult } from '../catchup-runner.js'; export type CatchupJobState = "queued" | "running" | "done" | "failed" | "denied" /** * Catchup completed but no peer could deliver the CG content within * the run — every per-peer sync round either failed or returned * nothing while no responder explicitly denied access. Distinct from * `denied` (curator refused) and `failed` (the worker itself threw) * so the UI can render targeted copy + a "send signed join request" * CTA without misclassifying slow public CGs as denied. */ | "unreachable"; export interface CatchupJob { jobId: string; contextGraphId: string; includeWorkspace: boolean; status: CatchupJobState; queuedAt: number; startedAt?: number; finishedAt?: number; result?: CatchupJobResult; error?: string; } export interface CatchupTracker { jobs: Map; latestByContextGraph: Map; } export declare function toCatchupStatusResponse(job: CatchupJob): { contextGraphId: string; includeSharedMemory: boolean; jobId: string; includeWorkspace: boolean; status: CatchupJobState; queuedAt: number; startedAt?: number; finishedAt?: number; result?: CatchupJobResult; error?: string; }; //# sourceMappingURL=types.d.ts.map