import type { ProcessRunner } from "../providers/process.js"; import { type GithubSyncTarget } from "./adapter.js"; import { type GithubSyncBatch, type GithubSyncResult, type GithubWatermark } from "./types.js"; export interface GithubSyncOptions { readonly target: GithubSyncTarget; readonly cwd: string; readonly watermarkRoot: string; readonly locksRoot: string; readonly project: (batch: GithubSyncBatch) => unknown | Promise; readonly runner?: ProcessRunner; readonly env?: NodeJS.ProcessEnv; readonly clock?: () => string; } /** * Fetches one complete repository snapshot and commits its watermark only after projection succeeds. * A private staged batch makes projection and watermark advancement replay-safe across crashes. */ export declare function syncGithubEventsOnce(options: GithubSyncOptions): Promise; export declare function githubWatermarkPath(target: GithubSyncTarget, watermarkRoot: string): string; export declare function githubSyncStagePath(target: GithubSyncTarget, watermarkRoot: string): string; export declare function readGithubWatermark(target: GithubSyncTarget, watermarkRoot: string): GithubWatermark | null;