import type { AgentRuntime } from "./agentRuntime.js";
import type { AgentModelFactory } from "./modelFactory.js";
import { type PreviousUserMessage } from "../domain/languageDetect.js";
import type { AgentModeCompletionAdapter, LlmPort, LlmStreamInput } from "../application/ports.js";
import type { PendingInterrupt } from "../domain/turnTypes.js";
/**
 * LangChain/LangGraph implementation of {@link LlmPort}. This is the single
 * place that knows about the agent graph, model construction, and the raw
 * stream shape; the application layer talks only to the port.
 */
export declare class LangGraphLlm implements LlmPort {
    private readonly runtime;
    private readonly modelFactory;
    constructor(runtime: AgentRuntime, modelFactory: AgentModelFactory);
    streamTurn(input: LlmStreamInput): Promise<AsyncGenerator<import("../domain/turnTypes.js").AgentStreamChunk, any, any>>;
    detectLanguage(input: {
        completionAdapter: AgentModeCompletionAdapter;
        prompt: string;
        previousUserMessages: PreviousUserMessage[];
    }): Promise<import("../domain/languageDetect.js").DetectedLanguage | null>;
    getPendingInterrupts(input: {
        completionAdapter: AgentModeCompletionAdapter;
        sessionId: string;
    }): Promise<PendingInterrupt[]>;
    getLatestCheckpointId(input: {
        completionAdapter: AgentModeCompletionAdapter;
        sessionId: string;
    }): Promise<string | null>;
    resetThreadCheckpoints(input: {
        completionAdapter: AgentModeCompletionAdapter;
        sessionId: string;
    }): Promise<void>;
}
