export interface TurnOutcome { /** A reply/reply-document tool_use appeared in the turn. */ replied: boolean; /** Text of the end_turn assistant message ('' when none / not yet reached). */ finalText: string; /** The turn reached an assistant end_turn. */ reachedEndTurn: boolean; } /** Fold one turn's JSONL line strings into the delivery decision. Pure. */ export declare function reduceTurnFromLines(lines: string[]): TurnOutcome; export type OnTurnEnd = (outcome: TurnOutcome) => void; /** * Tail `jsonlPath` from `startOffset` for the life of the session, invoking * `onTurnEnd` once for every assistant end_turn with that turn's outcome * (Task 839). Unlike a one-shot follow it does not stop at the first end_turn: * it segments the JSONL at each end_turn so a follow-on turn produced from a * mid-turn-queued message is reported too. The process dies with the session, * so there is no per-turn timeout; the promise resolves only when the file * becomes unreadable (mirrors watchForGrowth's stat-failure bail). Never rejects. */ export declare function followTurnEnds(jsonlPath: string, startOffset: number, onTurnEnd: OnTurnEnd): Promise; //# sourceMappingURL=turn-follow.d.ts.map