import type { IAdminForth } from "adminforth";
import type { BaseCheckpointSaver } from "@langchain/langgraph";
import type { SteerBuffer } from "../domain/steerBuffer.js";
import type { AgentToolProvider } from "../tools/agentToolProvider.js";
import type { AgentRuntimeRunInput, AgentTurnModels } from "./agentModels.js";
export type AgentRuntimeOptions = {
    name: string;
    getAdminforth: () => IAdminForth;
    getCheckpointer: () => BaseCheckpointSaver;
    toolProvider: AgentToolProvider;
    /** Per-session buffer of mid-turn steering instructions drained by the steer middleware. */
    steerBuffer: SteerBuffer;
};
export declare class AgentRuntime {
    private readonly options;
    constructor(options: AgentRuntimeOptions);
    stream(input: AgentRuntimeRunInput): Promise<import("@langchain/core/utils/stream").IterableReadableStream<["messages", [import("langchain").BaseMessage<import("@langchain/core/messages").MessageStructure<import("@langchain/core/messages").MessageToolSet>, import("@langchain/core/messages").MessageType>, Record<string, any>]] | ["updates", Record<string, Omit<import("langchain").BuiltInState<import("@langchain/core/messages").MessageStructure<import("langchain").ToolsToMessageToolSet<readonly (import("@langchain/core/tools").ClientTool | import("@langchain/core/tools").ServerTool)[]>>>, "jumpTo">>]>>;
    /**
     * Read the pending human-in-the-loop interrupts persisted for a thread from the
     * checkpointer. Builds a minimal agent (model + checkpointer + HITL middleware) and
     * queries its state — no model call is made. Returns raw LangGraph interrupt objects.
     */
    getPendingInterrupts(input: {
        models: AgentTurnModels;
        sessionId: string;
    }): Promise<unknown[]>;
    /**
     * Return the thread's latest (tip) checkpoint id, or null when the thread has no
     * persisted state. Builds a minimal agent and reads its state — no model call is
     * made. Called after a turn completes to record the turn's fork point for editing.
     */
    getLatestCheckpointId(input: {
        models: AgentTurnModels;
        sessionId: string;
    }): Promise<string | null>;
    /**
     * Drop the entire LangGraph checkpoint thread for a session. Used when editing the
     * first message, where there is no earlier checkpoint to fork from.
     */
    resetThreadCheckpoints(sessionId: string): Promise<void>;
}
