import { z } from "zod"; import type { AgentEventEmitter } from "../../domain/agentEvents.js"; import type { SteerBuffer } from "../../domain/steerBuffer.js"; /** * `beforeModel` middleware that folds user "steering" instructions into a running * turn. Before every model call in the agent loop it drains the per-session * {@link SteerBuffer}; any buffered steers are appended to the conversation as * user messages (so the model sees them on the very next call) and a * `steer-applied` event is emitted on the turn's already-open SSE stream so the * frontend knows the steer was actually consumed (not just received/queued). * * Placed first in the middleware array so the injected messages are present for * every downstream `beforeModel` hook (e.g. summarization) and the model itself. */ export declare function createSteerMiddleware(steerBuffer: SteerBuffer): import("langchain").AgentMiddleware>; }, z.core.$strip>, { sessionId: string; emit?: AgentEventEmitter | undefined; }, readonly (import("@langchain/core/tools").ClientTool | import("@langchain/core/tools").ServerTool)[]>;