import type { ProgressEvent, ProgressPort } from "../ports/progress.ts"; export interface EventLogProgressDeps { /** Clock, injectable for tests. Default Date.now. */ now?: () => number; /** Minimum ms between heartbeats per stage. Default 30000. */ throttleMs?: number; } export declare class EventLogProgress implements ProgressPort { private readonly diabloDir; private readonly issue; private readonly runId; private readonly path; private readonly now; private readonly throttleMs; /** Last written heartbeat timestamp per stage, for per-stage throttling. */ private readonly lastHeartbeatTs; constructor(diabloDir: string, issue: string, runId: string, deps?: EventLogProgressDeps); /** Create the issue directory. Does NOT truncate — events accumulate across runs. */ init(): Promise; emit(event: ProgressEvent): Promise; }