import { RequestOverLimitError } from "../../request-accounting.js"; import type { CompletionResult } from "../../../types.js"; import type { StreamSession } from "./stream-session.js"; import type { TurnLoopDeps } from "./deps.js"; export type RoundRequestResult = { readonly kind: "continue"; } | { readonly kind: "completed"; readonly completion: CompletionResult; readonly toolsAttached: boolean; }; export interface RoundRequestInput { readonly streamSession: StreamSession; readonly responderDelivery: { readonly id: string; } | undefined; readonly delay: (ms: number) => Promise; readonly setToolsAttached: (attached: boolean) => void; } export declare function recoverDispatchOverLimit(deps: Pick, error: RequestOverLimitError): Promise; export declare const requestRound: (deps: TurnLoopDeps, input: RoundRequestInput) => Promise;