import type { ConversationEngine, ConversationEngineConfig } from '../../../core/chat/engine/types.js';
import type { ChatSession } from '../../../core/chat/types.js';
import type { ChatSessionView, ControlPlaneSessionRuntimeContext } from '../../../server/control-plane-types.js';
export type ControlPlaneSessionRuntimeContextArgs = Omit<ConversationEngineConfig, 'model'> & {
    model?: string;
    sessionStoragePath: string;
    workspaceId: string;
    sessionId: string;
};
export type ControlPlaneSessionRuntimeContextOptions = {
    driftLevel?: ChatSessionView['driftLevel'];
    running?: boolean;
};
export type ControlPlaneResolvedSessionRuntimeContext = {
    args: ControlPlaneSessionRuntimeContextArgs;
    engine: ConversationEngine;
    sessions: ConversationEngine['sessions'];
    session: ChatSession;
    runtimeContext: ControlPlaneSessionRuntimeContext;
};
/**
 * Owns selected-session runtime facts for control-plane consumers.
 *
 * Keep facts here when they describe the current executable session context
 * rather than persisted transcript data: selected model, resolved credentials,
 * model capabilities, context-window estimates, drift/run state, and empty
 * session welcome facts. Interface layers decide how to render those facts.
 */
export declare class ControlPlaneSessionRuntimeContextService {
    read(args: ControlPlaneSessionRuntimeContextArgs, options?: ControlPlaneSessionRuntimeContextOptions): ControlPlaneSessionRuntimeContext;
    resolve(args: ControlPlaneSessionRuntimeContextArgs, options?: ControlPlaneSessionRuntimeContextOptions): ControlPlaneResolvedSessionRuntimeContext;
}
export declare const controlPlaneSessionRuntimeContextService: ControlPlaneSessionRuntimeContextService;
//# sourceMappingURL=session-runtime-context-service.d.ts.map