/** Provider-round phase of runInternal (plan 059). */ import type { ModelConfig, ProviderRequest, ProviderTurnResult, RunOptions, ToolResult, Usage } from "../../contracts.js"; import type { RoundContext, SessionHost } from "./types.js"; /** Resolve the per-request input cap for turn-budget metadata (plan 087 T1). A model without a * derivable cap (or a bad attention setting on an unrelated run) omits the field instead of * failing an emitting turn; the attention compiler, when enabled, is the cap authority. */ export declare function resolveTurnInputCap(session: SessionHost, model: ModelConfig): number | undefined; export declare function recordProviderUsage(ctx: RoundContext, turnUsage: Usage | undefined, turn: number, attempt: number, request?: ProviderRequest): Promise; /** * Plan 096: host middleware may answer the turn deterministically at the `beforeProviderTurn` seam — * no provider request, no usage, mandatory provenance. `undefined` sends the turn to the provider * unchanged; a malformed answer fails the run closed instead of falling through to the provider. */ export declare function resolveDeterministicTurn(session: SessionHost, request: ProviderRequest, runId: string, turn: number, signal: AbortSignal, toolResults?: readonly ToolResult[]): Promise; export declare function generateWithRetry(session: SessionHost, request: ProviderRequest, runId: string, options: RunOptions, signal: AbortSignal, requestSecrets?: readonly (string | undefined)[], turn?: number, recordUsage?: (usage: Usage | undefined, turn: number, attempt: number) => Promise, toolResults?: readonly ToolResult[]): Promise; export declare function generateProviderTurn(session: SessionHost, request: ProviderRequest, runId: string, signal: AbortSignal, secrets?: readonly (string | undefined)[], turn?: number, attempt?: number, recordUsage?: (usage: Usage | undefined, turn: number, attempt: number) => Promise, toolResults?: readonly ToolResult[]): Promise;