import type { SessionConfigOption } from "@agentclientprotocol/sdk"; import type { ThinkingLevel } from "@earendil-works/pi-agent-core"; export declare const MODEL_CONFIG_ID = "model"; export declare const THINKING_LEVEL_CONFIG_ID = "thinking_level"; /** The model fields needed to advertise a choice; ModelInfo and RpcSessionState.model both fit. */ export interface ConfigOptionModel { provider: string; id: string; name?: string; } export interface ConfigOptionSource { models: readonly ConfigOptionModel[]; thinkingLevels: readonly ThinkingLevel[]; currentModel?: ConfigOptionModel; currentThinkingLevel: ThinkingLevel; } export type ConfigOptionSelection = { type: "set_model"; provider: string; modelId: string; } | { type: "set_thinking_level"; level: ThinkingLevel; }; export declare function modelChoiceValue(model: Pick): string; /** Build the stable configOptions array shared by session/new, session/resume and T19's session/load. */ export declare function buildSessionConfigOptions(source: ConfigOptionSource): SessionConfigOption[]; /** Resolve one advertised value into the RPC command that applies it. */ export declare function resolveConfigOptionSelection(configId: string, value: string | boolean, source: ConfigOptionSource): ConfigOptionSelection | undefined;