import { Effect, Stream } from "effect"; import { LanguageModel, Prompt, Response, Tool } from "effect/unstable/ai"; import { type Event } from "./agent-event.js"; import { type Registry } from "../tools/tool-registry.js"; import { type ModelCallPurpose } from "../model/model-telemetry.js"; import type { ModelTurnServices, RuntimeContext } from "./model-turn-context.js"; import type { RunError } from "./agent.js"; import type { TurnOverrides } from "../turn/turn-policy.js"; export declare const makeModelTurn: , R>(context: RuntimeContext) => { modelTurn: (turn: number, prompt: Prompt.RawInput, registry: Registry, overrides?: TurnOverrides) => Stream.Stream>; captureStructuredUsage: (content: ReadonlyArray>>) => Effect.Effect; withModelTelemetry: (turn: number, purpose: ModelCallPurpose) => (effect: Effect.Effect) => Effect.Effect, never>>; withAgentModel: (effect: Effect.Effect) => Effect.Effect | Effect.Effect>; };