import type { PendingMarker } from "../state/approval-state.js"; /** * Stable identity key for a pending marker. * Changes when a gate is re-requested in a later round (different requestedAt), * but is stable while the gate remains at the same requestedAt. */ export declare function markerKey(m: PendingMarker): string; export declare class ApprovalCursor { private readonly projectRoot; private readonly sessionId; constructor(projectRoot: string, sessionId: string); private path; /** * Read the set of already-announced marker keys. * Returns empty set on missing file or malformed JSON — never throws. */ private readFile; /** * Return the subset of markers not yet announced, and atomically record * them as announced for this session. Idempotent: calling again with * the same markers returns []. */ filterNew(markers: PendingMarker[]): Promise; } //# sourceMappingURL=approval-cursor.d.ts.map