/**
 * SessionContext — the active session/turn identity + lifecycle state.
 *
 * The "who/what is running right now" the server tracks across the current session
 * and turn: the session id, the in-flight turn id, the session cost/state snapshot,
 * sticky task domain, host-pinned LLM config, and the ACP session _meta supplement.
 *
 * Extracted from StdioServer so its runtime-state-container concern is one named
 * holder rather than six loose fields on the god-object. It is a plain mutable
 * holder (no invariant beyond field cohesion); the server exposes same-named
 * get/set accessors that delegate here, so every existing reader AND writer —
 * including handlers bound via the RPC host cast (session.create, thread.turn,
 * set_config) — keeps working unchanged.
 */
import type { SessionState } from "../runtime/session/session-state.js";
import type { SessionLlmConfig } from "./acp-session-host.js";
export declare class SessionContext {
    /** Active session id (chatId for desktop; group key pattern for groups). */
    sessionId: string;
    /** In-flight turn id. */
    turnId: string;
    /** Session cost/state snapshot (null until a session is resolved). */
    state: SessionState | null;
    /** Host-pinned per-session LLM config (session/set_config_option · set_model · /model).
     *  NEVER wiped by ModelRegistry churn — distinct from the DERIVED ResolvedAgentCache. */
    llmConfig: SessionLlmConfig;
    /** ACP session-level context supplement (_meta from session/new), inherited by every prompt. */
    acpMeta: Record<string, unknown> | null;
}
