import type { ContentBlockParam } from '@anthropic-ai/sdk/resources'; import type { ProviderCompactResult, ProviderEvent, ProviderUserTurn } from '../../provider.js'; import type { AnthropicToolDef } from './types.js'; import type { SessionState } from './query/session-state.js'; import type { AbortCoordinator } from '../shared/abort-coordinator.js'; import type { RetryLayer } from './query/retry-layer.js'; import type { HookRegistry } from '../../hooks.js'; export interface TurnDriverContext { readonly initSessionId: string; readonly promptStream: AsyncIterable; readonly state: SessionState; readonly abort: AbortCoordinator; readonly retry: RetryLayer; readonly maxTokens: number; readonly tools: AnthropicToolDef[] | null; readonly thinking: import('@anthropic-ai/sdk/resources').ThinkingConfigParam | undefined; readonly effort: import('../../types/sdk-types.js').EffortLevel | undefined; readonly temperature: number | undefined; readonly baseUrl: string | undefined; readonly maxToolUseIterations: number | undefined; readonly softDeadlineMs: number | undefined; readonly traceWriter: import('../../trace/index.js').TraceSink | undefined; readonly subagentId: string | undefined; readonly mcpManager: import('../../mcp/index.js').McpManager | undefined; readonly hookRegistry: HookRegistry | undefined; readonly throttleQueue: import('./throttle-queue.js').ThrottleQueue | undefined; readonly fastModeController: import('../../fast-mode.js').FastModeController | undefined; readonly beforeNextRound: (() => string | undefined) | undefined; composeSystem(): ContentBlockParam[] | null; makeInterruptedTurnEvent(): ProviderEvent; compact(): Promise; } export declare function driveTurns(ctx: TurnDriverContext): AsyncGenerator;