import type { AgentRunArgs } from './agent-runner.js'; import { type GrokStreamEvent } from './grok-runner-parse.js'; export interface TurnOutcome { sessionId?: string; exitCode: number; stderrTail: string; timedOut: boolean; /** True when the process was killed by STARTUP_GRACE_MS with no output — * likely stuck on a first-run interactive prompt headless mode can't answer. */ hangSuspected: boolean; inputTokens: number; outputTokens: number; /** `result.total_cost_usd` of this invocation, when grok reported one. */ costUsd?: number; /** The invocation stopped at `--max-turns` (result subtype * `error_max_turns`). */ maxTurnsHit?: boolean; error?: string; } /** `grok` argv for one turn (exported for the argv tests). */ export declare function grokCliArgs(prompt: string, sessionId: string | undefined, args: AgentRunArgs): string[]; /** * Run one `grok` invocation and stream its NDJSON output INCREMENTALLY: * each parsed event is yielded as soon as its line arrives on stdout (see * grok-runner.ts's header "Streaming / liveness" note for why buffering * until process exit was a bug, #204). End-of-turn facts (exit code, stderr * tail, session id, usage, error, timeout/hang flags) are written into * `outcome`, which the caller reads after this generator completes. */ export declare function streamTurn(bin: string, prompt: string, sessionId: string | undefined, args: AgentRunArgs, outcome: TurnOutcome): AsyncGenerator; /** Build the actionable error for a failed grok turn. */ export declare function turnError(outcome: TurnOutcome, round: number): Error; //# sourceMappingURL=grok-runner-stream.d.ts.map